国产探花免费观看_亚洲丰满少妇自慰呻吟_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.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 阳城县| 旅游| 西乌珠穆沁旗| 城口县| 邻水| 龙川县| 平定县| 兴仁县| 绥宁县| 玛多县| 巴彦淖尔市| 开鲁县| 昌都县| 长岭县| 彭泽县| 张掖市| 本溪| 蓬莱市| 韶关市| 司法| 手机| 东安县| 乐清市| 武强县| 自治县| 巴林右旗| 丹棱县| 景宁| 班戈县| 临泉县| 稻城县| 铜川市| 囊谦县| 广安市| 呼玛县| 读书| 南通市| 泾川县| 清徐县| 江山市| 济源市|