【问题标题】:How to bind an Arraylist containing items of type object[] to a GridView?如何将包含对象 [] 类型项目的 Arraylist 绑定到 GridView?
【发布时间】:2011-10-19 08:39:28
【问题描述】:

我有一个Arraylist,其中所有项目的类型都是object[2]

如何将其绑定到 GridView ?

我需要能够在BoundField 上设置DataField 属性,但我不知道如何使用object[]

感谢回复!

【问题讨论】:

    标签: c# arrays data-binding webforms arraylist


    【解决方案1】:

    Linq 生成匿名对象列表。

    if (!IsPostBack)
     {
      List<object[]> list = new List<object[]>();
      list.Add(new object[] {11,22 });
      list.Add(new object[] { 21, 32 });
    
      var result = from ar in list
                   select new
                        {
                            Data1=ar[0].ToString(),
                            Data2=ar[1].ToString()
                        };
    
      GridView1.DataSource = result.ToList();
      GridView1.DataBind();
    }
    

    使用TemplateField 并通过Eval() 绑定元素。

    <asp:GridView ID="GridView1" 
                    runat="server" 
                    AutoGenerateColumns="False" >
        <Columns>
            <asp:TemplateField>
                <ItemTemplate>
                <asp:Literal 
                     ID="lit1" 
                     runat="server"
                     Text='<%#Eval("[0]") %>' />
                <asp:Literal 
                     ID="lit2" 
                     runat="server"
                     Text='<%#Eval("[1]") %>' />                
             </ItemTemplate>
            </asp:TemplateField>
        </Columns>
    </asp:GridView>
    

    代码隐藏,

    if (!IsPostBack)
    {
         List<object[]> list = new List<object[]>();
         list.Add(new object[] {11,22 });
         list.Add(new object[] { 21, 32 });
         GridView1.DataSource = list;
         GridView1.DataBind();
    }
    

    【讨论】:

    • 无法使用第二种方法,因为我在后面的代码中创建 GridView 并添加 TemplateField 需要大量代码。第一种方法效果很好。必须将 ArrayList 转换为 List 使用: var myList = myArrayList.OfType().ToList();谢谢:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-04
    • 2011-04-05
    • 1970-01-01
    • 1970-01-01
    • 2011-07-27
    • 2013-04-12
    相关资源
    最近更新 更多