步驟一:
首先我們可以在網頁上這樣描述,先設定一個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; |
| } |
| } |
步驟三:
這樣就大功告成了。
沒有留言:
張貼留言