国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

DataGrid的幾個小技巧!

2024-07-21 02:23:03
字體:
來源:轉載
供稿:網友


方法一:使用模版列

我們在綁定好數據的datagrid增加一個模版列,在列中放置一個按鈕
<asp:templatecolumn>
<itemtemplate>
<asp:button id="btndelete" runat="server" text="刪除"></asp:button>
</itemtemplate>
</asp:templatecolumn>
然后我們在datagrid的itemdatabound中添加以下代碼
switch(e.item.itemtype)
{
case(listitemtype.item):
case(listitemtype.alternatingitem):
{
button btn=(button)e.item.findcontrol("btndelete");
btn.attributes.add("onclick","return window.confirm('fs')");
break;
}
}
datagrid在綁定數據的時候將觸發此事件,而且每行觸發一次.我們可以通過e.item獲得行,而通過e.item.itemtype獲得行類型.

方法二:使用按鈕列

我們在綁定好數據的datagrid增加一個刪除按鈕列
<asp:buttoncolumn text="刪除" commandname="delete"></asp:buttoncolumn>
然后我們在datagrid的itemdatabound中添加以下代碼
switch(e.item.itemtype)
{
case(listitemtype.item):
case(listitemtype.alternatingitem):
{
linkbutton btn=(linkbutton)e.item.cells[4].controls[0];
btn.attributes.add("onclick","return window.confirm('fs')");
break;
}
}
可以看到我們這里獲得控件引用的方法有所不同,使用了e.item.cells[4].controls[0],而沒有使用e.item.findcontrol("btndelete"),因為我


們現在使用的是按鈕列,不能對按鈕列的按鈕設置id屬性,而findcontrol是通過id來查找控件(當然我們也可以把前面的代碼用


e.item.cells[4].controls[0]的代碼來替換.).



添加序號列

綁定好一個datagrid
switch(e.item.itemtype)
{
case(listitemtype.item):
case(listitemtype.alternatingitem):
{
datagriditem row=(datagriditem)e.item;
tablecell cell=new tablecell();
cell.controls.add(new literalcontrol((e.item.itemindex+1).tostring()));
row.cells.addat(0,cell);
break;
}
case(listitemtype.header):
{
datagriditem row=(datagriditem)e.item;
tablecell cell=new tablecell();
cell.controls.add(new literalcontrol("序號"));
row.cells.addat(0,cell);
break;
}
}
這里我們用到了e.item.itemindex,獲取來自 datagrid 控件的 items 集合的 datagriditem 對象的索引.


產生兩行的標題行

綁定好一個datagrid,設置允許分頁,設置頁導航為上下型,一會我們將強制把上面的頁導航更換成標題行.這里我想講一下datagrid的行構成
最上面pager,用來放置分頁導航,然后是表頭header,接著是item和alternatingitem項目和交替項目(當然還有selecteditem選中項和edititem


編輯項等),然后是footer表腳,最下面還有一個pager.因為pager行是系統自動產生的,所以在itemdatabound事件中不能捕獲此行,這里我使用了


itemcreated事件,添加代碼如下
switch(e.item.itemtype)
{
case(listitemtype.pager):
{
if(first)
{
datagriditem row=(datagriditem)e.item;
row.cells.clear();
tablecell cell0=new tablecell();
cell0.controls.add(new literalcontrol("id"));
tablecell cell1=new tablecell();
cell1.columnspan=2;
cell1.controls.add(new literalcontrol("fullname"));
row.cells.add(cell0);
row.cells.add(cell1);
}
first=!first;
break;
}
}
這里的first用來判斷是上面的pager還是下面的pager.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 云和县| 玛纳斯县| 卫辉市| 古丈县| 龙陵县| 高邑县| 鲜城| 田阳县| 叙永县| 绥宁县| 隆回县| 黄梅县| 察哈| 庆城县| 民权县| 莱州市| 佛冈县| 普定县| 定西市| 洞口县| 滕州市| 新昌县| 晋中市| 永吉县| 大足县| 济宁市| 民乐县| 根河市| 新密市| 桂平市| 乌拉特后旗| 乃东县| 屏东市| 甘谷县| 马龙县| 昌黎县| 登封市| 富阳市| 曲松县| 库车县| 屏边|