如何将包含object []类型的项目的Arraylist绑定到GridView?

时间:2011-10-19 08:39:29

标签: c# arrays data-binding webforms arraylist

我有一个Arraylist,其中所有项目都属于object[2]类型。

如何将其绑定到GridView?

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

感谢您的回复!

1 个答案:

答案 0 :(得分: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();
}

OR

使用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();
}