說我有一個像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 2010-06-08 18:34:39
不是我所知道的。您可以使用gridview識別DataRow風格的數據,因此如果您可以將元組放入DataTable中,則可以輕鬆地綁定到表並將HeaderTemplate處理您的頭,並且行頭可以位於第一列中。但是,就我所知,沒有即時可用的電子表格樣式控件來解析數據。 – womp 2010-06-08 18:43:34
您可以使用嵌套數據綁定控件並跳過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 MVC 3 ViewModels呈現爲Rails視圖中的ListView,Accordian或簡單列表
- 2. 簡單的表單分組方法
- 3. 無法呈現簡單的ReactDOM div
- 4. 如何將HTML呈現給asp.net頁面?
- 5. ReactJs呈現簡單的JSON
- 6. Express.js呈現簡單的html
- 7. ASP.NET(MVC) - 將頁面呈現給文件
- 8. 聚合物簡單元素不呈現
- 9. 呈現表單後呈現函數後面的代碼ASP.NET
- 10. 簡單React組件不呈現
- 11. 簡單Vue組件不呈現
- 12. 用於呈現簡單HTML片段的方法
- 13. 將關聯數組傳遞給方法的簡明方法
- 14. 在ASP.NET MVC中實現分頁的簡單方法是什麼?
- 15. 將呈現的圖像呈現給Rails中的瀏覽器
- 16. 將freemarker對象呈現爲JSON的最簡單方法是什麼?
- 17. 將EJB 2.0項目轉換爲EJB 3.0的最簡單方法
- 18. MVC ASP.NET和EF中的CRUD交叉表的簡單方法?
- 19. 如何將參數傳遞給呈現的h:outputText方法?
- 20. 呈現表單的方式 - php和HTML
- 21. 簡單的方法
- 22. 更簡單的方法將現有數組中的兩個元素作爲數組連接?
- 23. 如何將URL參數傳遞給呈現的symfony3表單?
- 24. 構建要通過表單呈現的元組
- 25. 在Fortran中實現一組隊列的簡單方法?
- 26. 簡單的方法將html表格導出爲ASP.NET中的excel文件?
- 27. 有沒有簡單的方法來使用webservice方法在SSRS 2008中異步呈現報表?
- 28. 將Rails表單轉換爲AJAX表單的簡單方法?
- 29. 在ASP.NET MVC中實現工作單元的方法
- 30. 將輸入附加到表單和呈現的元素
或者,我可以得到從數據庫中的數據,如「行,列,值」的格式如果讓事情更容易... – nicolaskruchten 2010-06-08 18:24:01
我最終建立一個簡單的控件有一個'setData(row,col,value)'方法並呈現給HTML表格。 – nicolaskruchten 2010-06-10 18:09:17