步驟一:
首先我們可以在網頁上這樣描述,先設定一個Label,用來顯示發生錯誤時的訊息。接下來建立一個Panel,這個Panel就是等一下動態產生出來的GridView要擺放的位置:
<asp:Label ID="lbl_ErrMsg" runat="server" /> |
<asp:Panel ID="pnl_data" runat="server" /> |
步驟二:
我們建立一個method,並自外部傳入一個DataTable當作GridView的資料來源
protected void CreateGridView(DataTable dt) |
{ |
try |
{ |
if (dt.Rows.Count > 0) |
{ |
//產生一個GridView |
GridView gv = new GridView(); |
gv.ID = dt.TableName; |
gv.AllowPaging = false; |
gv.AllowSorting = true; |
//先設定不要自動產生GridView中的每一欄 |
gv.AutoGenerateColumns = false; |
gv.Style.Add("width", "100%"); |
//動態設定每一欄型態、欄名與格式化,並將DataTable的資料 自動對應每一欄中 |
foreach (DataColumn c in dt.Columns) |
{ |
BoundField bf = new BoundField(); |
bf.DataField = c.ColumnName; |
bf.HeaderText = c.ColumnName; |
bf.HeaderStyle.CssClass = "StyleHead"; |
bf.ItemStyle.CssClass = "StyleItem"; |
gv.Columns.Add(bf); |
} |
//設定列的格式 |
gv.FooterStyle.CssClass = "StyleFooter"; |
gv.RowStyle.CssClass = "StyleRow"; |
gv.PagerStyle.CssClass = "StylePageNo"; |
gv.SelectedRowStyle.CssClass = "StyleSelectedRow"; |
gv.HeaderStyle.CssClass = "StyleHead"; |
gv.EditRowStyle.CssClass = "StyleEditRow"; |
gv.AlternatingRowStyle.CssClass = "StyleAlternatingRow"; |
gv.Visible = true; |
//將DataSource指向DataTable |
gv.DataSource = dt; |
gv.DataBind(); |
gv.PageIndex = 0; |
//將產生出來的GridView放置到網頁的Panel內 |
pnl_data.Controls.Add(gv); |
} |
} |
catch (Exception ex) |
{ |
lbl_ErrMsg.Text = ex.Message; |
} |
} |
步驟三:
這樣就大功告成了。
沒有留言:
張貼留言