【问题标题】:binding difficulty in datagrid数据网格中的绑定难度
【发布时间】:2014-08-01 06:04:25
【问题描述】:

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

我的数据

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

我只得到网格中的键,而不是列表中的值列表。

我的圣诞节

 <form id="form1" runat="server">
    <div>

    </div>
        <asp:GridView ID="GridView1" runat="server">
        </asp:GridView>
    </form>

【问题讨论】:

  • 你有什么问题?您是否遇到某种错误?
  • 我没有收到任何错误,它只显示键而不是列表中的值
  • 对,但你必须告诉我们。
  • 您还需要向我们展示您的XAML 代码。
  • 好的。我会在问题中更新

标签: c# asp.net .net gridview


【解决方案1】:

我认为您必须手动配置 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>

【讨论】:

    【解决方案2】:

    GridView 不会原生绑定到像泛型 List 这样的复杂类型。如果将以下内容添加到 MyKVP 对象,您将开始看到 value 属性的内容。

    public string ValueAsCsv
    {
      get
      {
        return string.Join(",", value.Select(x => x.name));
      }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-09-14
      • 2017-06-11
      • 2012-10-26
      • 1970-01-01
      • 1970-01-01
      • 2011-08-14
      • 1970-01-01
      相关资源
      最近更新 更多