日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

GridView空记录时显示Header和Footer

發布時間:2023/12/15 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 GridView空记录时显示Header和Footer 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

  也有段日子沒寫什么東西了,也是因為以前閑了好長時間,最近一下又有活干了,也不是什么新任務,還是接著原來沒做完的工作重新設計和動工,對原來做好的曲線圖形開發一個常用屬性的設置,普通用戶就可以通過頁面對圖形顯示的效果簡單修改,而不單單只是程序員在程序的控件中修改。

  說實話具體的工作也沒多大難度,主要在問題就在此維護工具的界面的設計和程序架構設計,一旦這方面做不好,后期進行擴展將會存在大量問題,有可能需要重新設計和開發,核心也是由于項目組中沒有經驗豐富的人帶領,所以自己和其余幾個人做的都很頭大。

  維護工具界面主要采用GridView進行數據的增、刪、改、顯示,并且所有的數據都保存在Xml文件中,沒有采用數據庫對數據進行存儲,所以Xml配置文件的設計需要合理的格式。

  看到標題,大家也會明白GridView中采用了模板列

    <ItemTemplate> 用于顯示數據控件Label

    <EditItemTemplate> 用于編輯和保存的時候顯示控件,根據所需選擇

    <FooterTemplate> 用于增加的時候顯示的控件,根據所需選擇

  大家都應該清楚,在沒有數據的時候,GridView是不顯示的,只會顯示EmptyDataText里填寫了文本。在真正做的時候確遇到了相當多問題,有記錄的時候增、刪、改功能不會存在什么問題,一旦沒記錄原本想讓顯示Header和Footer,但是結果卻是什么都不顯示,也試了好多方法,結果都不令人滿意,比如:可以創建一個DataTable,添加一條空記錄,重新對GridView進行填充和綁定,這樣雖然顯示了Header和Footer,但是空記錄也隨之顯示了,因為我之前我給GridView增加了一列自增編號,此列就會顯示1。

  代碼如下:

代碼 1 protected DataTable GetEmptyDataGrid()
2 {
3 DataTable dt = new DataTable("Table1");
4 //沒有數據時模擬出一些原始數據綁定GridView
5 ? dt = new DataTable();
6 //dt.Columns.Add("id");
7 ? dt.Columns.Add("csmc");//參數名稱
8 ? dt.Columns.Add("csbl");//參數變量
9 ? dt.Columns.Add("cslx");//參數類型
10 ? dt.Columns.Add("sfjl");//是否級聯
11 ? dt.Columns.Add("mrz");//默認值
12 dt.Columns.Add("sql");//SQL填充
13 DataRow dr = dt.NewRow();
14 dt.Rows.Add(dr);
15 dt.AcceptChanges();
16 return dt;
17 }

?

  經過自己的不懈努力和網上的資料,最后總算是找到了一個解決方法,也達到了想要的結果。

  在GridView的PreRender事件中,判斷 Rows.Count 是否等于0,再執行函數renderEmptyGridView函數,這樣也就實現了新增的功能。

  具體代碼如下:

代碼 1 protected void GridView1_PreRender(object sender, EventArgs e)
2 {
3 if (GridView1.Rows.Count == 0)
4 {
5 renderEmptyGridView(GridView1, "csmc, csbl, cslx, sfjl, mrz, sql");
6 }
7 }
8 public static void renderEmptyGridView(GridView EmptyGridView, string FieldNames)
9 {
10 //將GridView變成只有Header和Footer列,以及被隱藏的空白資料列
11 DataTable dTable = new DataTable();
12 char[] delimiterChars = {','};
13 string[] colName = FieldNames.Split(delimiterChars);
14 foreach (string myCol in colName)
15 {
16 DataColumn dColumn = new DataColumn(myCol.Trim());
17 dTable.Columns.Add(dColumn);
18 }
19 DataRow dRow = dTable.NewRow();
20 foreach (string myCol in colName)
21 {
22 dRow[myCol.Trim()] = DBNull.Value;
23 }
24 dTable.Rows.Add(dRow);
25 EmptyGridView.DataSourceID = null;
26 EmptyGridView.DataSource = dTable;
27 EmptyGridView.DataBind();
28 EmptyGridView.Rows[0].Visible = false;
29 }

?

?

  在此感謝此人的帖:http://hi.baidu.com/fancyaj/blog/item/13ce292e05283d584fc2265c.html

  如果大家還有其它什么好的方法,歡迎留言,共同進步~~~

?

?

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的GridView空记录时显示Header和Footer的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。