我在网格中绑定数据时遇到了一些困难。
我的数据:
时间 1 2
00:00 , ,
00.30 , ,
01:00 , ,
01:30 , ,
02:00 , ,
02:30 , ,
...等。
我的代码:
public partial class data : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
data1();
}
public void data1()
{
List<MyKVP> obj1 = new List<MyKVP>();
List<string> str = new List<string>() { "Time", "1", "2" };
List<string> str1 = new List<string>() { "00:00", "00:30", "01:00", "01:30", "02:00", "02:30", "03:00", "03:30", "04:00" };
for (int count = 0; count < str1.Count; count++)
{
MyKVP obj = new MyKVP();
if (count == 0)
{
obj.Key="0";
for (int i = 0; i < str.Count; i++)
{
Value o = new Value();
o.name = str[i];
obj.value.Add(o);
}
}
else
{
obj.Key = Convert.ToString(count);
Value o = new Value();
o.name = ":";
obj.value.Add(o);
}
obj1.Add(obj);
}
GridView1.DataSource = obj1;
GridView1.DataBind();
}
}
public class MyKVP
{
public MyKVP()
{
value = new List<Value>();
}
public string Key { get; set; }
public List<Value> value { get; set; }
}
public class Value
{
public string name { get; set; }
}
我只获取网格中的键而不是列表中的值列表。
我的xmal
<form id="form1" runat="server">
<div>
</div>
<asp:GridView ID="GridView1" runat="server">
</asp:GridView>
</form>
答案 0 :(得分:0)
我认为您必须手动配置GridView,所以我会尝试这样的事情。
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False">
<Columns>
<asp:BoundField DataField="Key" HeaderText="---"></asp:BoundField>
<asp:TemplateField HeaderText="---">
<ItemTemplate>
<asp:Repeater ID="Repeater1" runat="server" DataSource='<%# Eval("value") %>'>
<ItemTemplate>
<%# Container.DataItem %>
</ItemTemplate>
</asp:Repeater>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
答案 1 :(得分:0)
GridView本身不会像通用List那样绑定到复杂类型。如果将以下内容添加到MyKVP对象中,您将开始查看value属性的内容。
public string ValueAsCsv
{
get
{
return string.Join(",", value.Select(x => x.name));
}
}