把ArrayList綁到DataGrid。。。

 轉自:http://www.cnblogs.com/jpwar/archive/2006/06/13/424637.html

這個ArrayList只有一個string類型的項在裏面。

類似
    ArrayList arraylist = new ArrayList();

    arraylist.add("Item 0");

    arraylist.add("Item 2");

    arraylist.add("Item 3");

    arraylist.add("Item 4");

    arraylist.add("Item 5");

    arraylist.add("Item 6");


代碼上綁定的方法很簡單,大家都會。

DataGrid1.DataSource=arraylist;
DataGrid1.DataBind();

如果讓他自動生成列,會生成出一個Item列出來,顯示正常。

現在問題就來了,我怎麼才能自己在前面顯示出這個string呢?

網上給的回答多是模版列。

<asp:TemplateColumn HeaderText="標題">
<ItemTemplate>
     <%# Container.DataItem %>
</ItemTemplate>
</asp:TemplateColumn>

這種方法固然很可以,但我要用綁定列該怎麼辦?搜索了一上午沒有結果。用item提示找不到列。只好用Reflector看看了自動生成列的代碼。核心部分如下:

                       BoundColumn column1 = new BoundColumn();
                        column1.TrackViewState();
                        column1.HeaderText = "Item";
                        column1.DataField = BoundColumn.thisExpr;
                        column1.SortExpression = "Item";
                        column1.SetOwner(this);
                        list1.Add(column1);
看到了吧,DataField = BoundColumn.thisExpr。這是個靜態屬性,值是!。所以,綁定列應該用!....

如下:
<asp:BoundColumn DataField="!" HeaderText="標題">
    <HeaderStyle HorizontalAlign="Center" Width="240px"></HeaderStyle>
    <ItemStyle HorizontalAlign="Center"></ItemStyle>
</asp:BoundColumn>

成功!。真搞不懂老外在想什麼,"Item"不好嗎?偏用"!"。又浪費我不少時間。。。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章