数据网格中的绑定难度

时间:2014-08-01 06:04:26

标签: c# asp.net .net gridview

我在网格中绑定数据时遇到了一些困难。

我的数据

时间 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>

2 个答案:

答案 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));
  }
}