2011-10-19 6 views
0

私はすべてobject[2]のタイプであるArraylistを持っています。オブジェクト[オブジェクト]タイプのアイテムを含むArraylistをGridViewにバインドする方法はありますか?

どのようにGridViewにバインドできますか?

BoundFieldDataFieldプロパティを設定する必要がありますが、object[]でそれを行う方法がわかりません。

返信いただきありがとうございます。

答えて

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と​​を経由して要素をバインドします。コードビハインド

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

私は背後にあるコードでGridViewコントロールを作成し、TemplateFieldは、多くのコードを必要とする追加していることから、

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(); 
} 
+0

は、第二の方法を使用することができませんでした。 1番目の方法は素晴らしい作品です。 ArrayListをリストに変換しなければならなかった:var myList = myArrayList.OfType ().ToList();ありがとう:) –

関連する問題