大大毛 的筆記

            DDM's Note

          哪怕沒有辦法一定有說法,
          就算沒有鴿子一定有烏鴉,
          固執(zhí)無罪 夢(mèng)想有價(jià),
          讓他們驚訝.

          posts - 14, comments - 23, trackbacks - 0, articles - 58
             :: 首頁 ::  :: 聯(lián)系 ::  :: 管理

          GridView在DataTable空行時(shí)不顯示的處理

          Posted on 2006-09-25 02:00 大大毛 閱讀(3365) 評(píng)論(1)  編輯  收藏 所屬分類: ASP.NET

          ???問題:

          ??????GridView控件應(yīng)用很是廣泛,通常將它與DataSourceControl搭配使用,當(dāng)然也可以手工指定DataSource屬性來完成數(shù)據(jù)綁定。如果數(shù)據(jù)源返回一個(gè)空行的數(shù)據(jù)集(例如查詢不到指定記錄等)時(shí),將會(huì)出現(xiàn)兩種情況:
          ??????1.當(dāng)GridView未指定<EmptyDataTemplate>或EmptyDataText屬性時(shí),控件將不會(huì)被最終生成,網(wǎng)頁上的表現(xiàn)為空白,這樣不僅感覺不爽,而且很容易造成布局的變形。
          ??????2.如果指定了<EmptyDataTemplate>或EmptyDataText屬性,網(wǎng)頁上將最終產(chǎn)生一個(gè)table元素,它具有一行一格,可以顯示出設(shè)置的提示信息,但是這種情況下該table將不會(huì)顯示出表頭來。
          ??????通常希望的是,即使數(shù)據(jù)源返回一個(gè)空行的數(shù)據(jù)集,但是原有的Table元素也應(yīng)該被顯示出來,它應(yīng)該帶一個(gè)表頭行,以及一個(gè)空白行。


          ???解決辦法:

          ??????通過手工向數(shù)據(jù)源添加一個(gè)新行即可解決。在此過程應(yīng)該處理好以下幾個(gè)方面的事情。
          ??????1.在 New 一行時(shí),如果包含主鍵列,則該列的值會(huì)被自動(dòng)賦值(如 int 列會(huì)被賦值 0 )。對(duì)此應(yīng)該手工將新行的每一列都賦值為 DBNull.Value?;
          ??????2.由于可能存在有非空約束,會(huì)造成插入失敗,因此必須手工將每一列的 AllowDBNull 屬性重新設(shè)定
          ??????以下示例 GridView 綁定至 ObjectDataSource 時(shí)的處理代碼:
          Selected事件

          ??????效果示意如下:
          標(biāo)題1標(biāo)題2標(biāo)題...
          ???

          ??????就此來說效果并不是十分理想,如果能夠?qū)崿F(xiàn)以下的效果那就更好了:
          標(biāo)題1標(biāo)題2標(biāo)題...
          沒有查找到符合條件的記錄


          ??????為達(dá)成目的,還需要在 GridView 中加一點(diǎn)小改進(jìn),處理一下那個(gè)空行。

          DataBound事件

          ??????如此一來,配合 GridView 的 EmptyDataText , EmptyDataRowStyle 即可以實(shí)現(xiàn)令人滿意的效果,見下圖。

          ????????????GridView空數(shù)據(jù)集效果圖


          評(píng)論

          # re: GridView在DataTable空行時(shí)不顯示的處理  回復(fù)  更多評(píng)論   

          2008-08-13 19:15 by bejon阿牛
          謝謝!

          i am ddm

          主站蜘蛛池模板: 灌南县| 潍坊市| 临沂市| 双牌县| 平果县| 响水县| 惠东县| 新巴尔虎右旗| 太仆寺旗| 特克斯县| 射阳县| 兴安县| 蒙自县| 安泽县| 永安市| 高唐县| 岳阳市| 景德镇市| 平乐县| 郯城县| 韶山市| 三明市| 黑山县| 子长县| 海丰县| 五大连池市| 横峰县| 阜阳市| 宣武区| 丰都县| 敖汉旗| 五家渠市| 江北区| 阿鲁科尔沁旗| 澎湖县| 廊坊市| 上思县| 易门县| 凤翔县| 土默特左旗| 当涂县|