2008年11月5日 星期三

如何將ArrayList 的資料繫結到 GridView

有時候,我要的其實不多。


如果有一個簡單的ArrayList,想直接當成 GridView資料來源,要如何
實作呢?


ArrayList 可以允許我們塞入物件類別,所以我需要事先定義一個類別,
裡頭必須包含公開的屬性,方便日後 GridView裡頭的欄位需要指定繫結
欄位來源時有所依據。


範例如下:


首先,先建立一個自定的類別。

public class cDateCombine
{
string _Date = string.Empty;
public string Date
{
get { return _Date; }
set { _Date = value; }
}

public cDateCombine(string strDate)
{
_Date = strDate;
}
}



在這個類別裡,我只定義了一個公開屬性 Date,
並且寫了一個可以自動將字串帶入的建構程序。


接著,在程式裡加上設定 GridView 資料來源的程式碼。


string strDate = "20080101,20090101,20090505";
string [] arrayDate = strDate.Split(',');

ArrayList alDate = new ArrayList();
for (int i = 0; i < arrayDate.Length; i++)
{
if (arrayDate[i].ToString().Length > 0)
alDate.Add(new cDateCombine(arrayDate[i]));
}

gv.DataSource = alDate;
gv.DataBind();

最後附上 Aspx 的頁面控制程式

<asp:GridView ID="gv" runat="server" AutoGenerateColumns="False">
<Columns>
<asp:BoundField HeaderText="日期" DataField="Date" />
</Columns>
</asp:GridView>





另外,有篇寫的蠻完整的文章,可以參考。


參考文章
http://www.akadia.com/services/dotnet_arraylist_datagrid.html

沒有留言:

張貼留言