Dictionary<string, Dictionary<string, int>>
또는 그와 유사한 데이터 구조가 있다고 가정 해 봅시다. 첫 번째 문자열 키로 행 헤더가 있고 두 번째 문자열 키로 열 머리글이있는 HTML 테이블로 렌더링하고 싶습니다. 거기에 내장 또는 다른 컨트롤이 있나요?ASP.NET 2.0에서 테이블에 튜플을 렌더링하는 간단한 방법은 무엇입니까?
답변
이와 같은 복잡한 데이터 구조를 인식 할 수있는 컨트롤이 내장되어 있지 않습니다. 당신은 약간의 맞춤 코딩을해야 할 것입니다.
ItemDataBound 이벤트 처리기가있는 Repeater를 사용하면 쉽게 구현할 수 있습니다. 그냥 내 머리, 아니 시험의 상단 떨어져 :
<asp:Repeater ID="Repeater1" runat="server" OnItemDataBound=" Repeater1_OnItemDataBound">
<ItemTemplate>
<asp:Literal ID="Literal1" runat="server" />
</ItemTemplate>
</asp:Repeater>
protected void Repeater1_OnItemDataBound(Object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType ==
ListItemType.AlternatingItem)
{
var rowHeader= (e.Item.DataItem).Key;
var columnHeaders = (e.Item.DataItem).Value;
foreach (var header in columnHeaders)
{
// build string to populate table row, assign to Literal1
}
}
}
이 스타일의 데이터를 보유하는 다른 유형의 데이터 구조를 인식하는 컨트롤이 있습니까? 위에서 언급 한 SQL 결과 (row, col, value)와 비슷합니까? – nicolaskruchten
내가 아는 것은 아니다. GridView를 사용하여 DataRow 스타일의 데이터를 인식 할 수 있으므로 튜플을 DataTable로 가져올 수 있으면 테이블에 쉽게 바인딩하고 헤더를 HeaderTemplate에서 처리 할 수 있으며 행 머리글은 첫 번째 열에 포함될 수 있습니다. 그러나 내가 아는 한 데이터를 구문 분석 할 수있는 즉시 사용 가능한 스프레드 시트 스타일 컨트롤은 없습니다. – womp
당신은 구속되고있는 외부 아이템의 속성 내부 컨트롤을 바인딩, 중첩 된 데이터 바인딩 된 컨트롤을 사용하고 OnItemDataBoundStep를 건너 뛸 수 있습니다.
귀하의 경우 사전에있는 각 항목에 키와 다른 사전이 포함되어 있습니다. 따라서 바인딩 할 때마다 해당 항목의 사전에 액세스하여 내부 데이터 바인딩 된 컨트롤의 데이터 소스로 설정하십시오. 나는 구축 결국이 쉽게 물건을 만드는 경우
<%@ Page Language="C#" %>
<%@ Import Namespace="System.Collections.Generic" %>
<script runat="server">
protected void Page_Load(object sender, EventArgs e)
{
Dictionary<string, Dictionary<string, int>> TestDict = new Dictionary<string, Dictionary<string, int>>();
//This is just loading the test dictionary
for (int i = 0; i < 10; i++)
{
Dictionary<string, int> ColData = new Dictionary<string, int>();
TestDict.Add("Row Header " + i, ColData);
for (int j = 0; j < 5; j++)
{
ColData.Add("Col Header " + j, i + j);
}
}
//Bind the Outer Repeater
RepeaterRow.DataSource = TestDict;
RepeaterRow.DataBind();
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<form id="form1" runat="server">
<asp:Repeater ID="RepeaterRow" runat="server">
<HeaderTemplate>
<table>
</HeaderTemplate>
<ItemTemplate>
<tr>
<th>
<%# Eval("Key") %>
</th>
<asp:Repeater ID="RepeaterColumn" DataSource='<%# Eval("Value")%>' runat="server">
<ItemTemplate>
<td>
<%# Eval("Value") %>
</td>
</ItemTemplate>
</asp:Repeater>
</tr>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater>
</form>
</body>
</html>
- 1. Asp.net 2.0에서 MultiView를 탭으로 사용하는 방법은 무엇입니까?
- 2. ASP.NET TreeView를 프로그래밍 방식으로 렌더링하는 방법은 무엇입니까?
- 3. ASP.NET MVC ViewResult를 HTML로 렌더링하는 방법은 무엇입니까?
- 4. asp.net mvc에서 이미지를 렌더링하는 방법은 무엇입니까?
- 5. 튜플을 푸는 pythonic 방법은 무엇입니까?
- 6. 배열에서 튜플을 만드는 방법은 무엇입니까?
- 7. ASP.NET 2.0에서 Page.Load 문제
- 8. 서비스 레이어에서보기를 렌더링하는 방법은 무엇입니까?
- 9. HTML 청크를 렌더링하는 방법은 무엇입니까?
- 10. 동적으로 컨트롤을 렌더링하는 방법은 무엇입니까?
- 11. 간단한 사이트를 여러 모바일 브라우저에서 올바르게 렌더링하는 방법은 무엇입니까?
- 12. Asp.Net 2.0에서 Asp.Net 4.0 인증
- 13. asp.net 테이블에 행을 동적으로 추가하는 방법은 무엇입니까?
- 14. 튜플을 선반의 키로 사용하는 방법은 무엇입니까? (Python)
- 15. 키워드가 지정된 튜플을 작성하는 방법은 무엇입니까?
- 16. ASP.NET 2.0에서 설정 (구성)을 관리하는 가장 좋은 방법은 무엇입니까?
- 17. ASP.net 학습 - 2.0에서 3.5까지의 큰 차이점은 무엇입니까?
- 18. 간단한 Asp.Net MVC2 바인딩 질문 : EditorFor를 사용하여 라디오 버튼 그룹을 렌더링하는 방법은 무엇입니까?
- 19. 레일을 금속으로 렌더링하는 방법은 무엇입니까?
- 20. Django에서 부분 렌더링하는 방법은 무엇입니까?
- 21. SQL Server 2008 R2가있는 테이블에서 마지막 튜플을 얻는 방법은 무엇입니까?
- 22. Asp.Net MVC 루프에서 일반 HTML 링크를 렌더링하는 방법은 무엇입니까?
- 23. ASP.NET : DataTable을 문자열 (HTML)로 렌더링하는 가장 짧은 방법은 무엇입니까?
- 24. DisplayFor를 사용하여 ASP.NET MVC의 컨트롤러에서 객체 목록을 렌더링하는 방법은 무엇입니까?
- 25. JSON 개체를 트리로 렌더링하는 간단한 라이브러리가 있습니까?
- 26. 레일즈에서 루비의 .builder 템플릿을 렌더링하는 방법은 무엇입니까?
- 27. ASP.NET 2.0에서 HttpResponse를 읽으려면 어떻게해야합니까?
- 28. ASP.NET 2.0에서 전자 메일 보내기
- 29. ASP.Net 2.0에서 Response.End()가 필요합니까?
- 30. ASP.NET 2.0에서 Silverlight를 구현 하시겠습니까?
다른 방법으로, 나는 ... "행 안부, 가치"와 같은 형식으로 – nicolaskruchten
을 데이터베이스에서 데이터를 얻을 수 :
는 다음과 같은 예를 생각해 'setData (row, col, value)'메서드가 있고 HTML 테이블로 렌더링되는 간단한 컨트롤입니다. – nicolaskruchten