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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

DataGrid的几个小技巧

發布時間:2023/11/27 生活经验 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 DataGrid的几个小技巧 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

作者:網際浪子專欄(曾用名littlehb)? http://blog.csdn.net/littlehb/

方法一:使用模版列

我們在綁定好數據的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.

總結

以上是生活随笔為你收集整理的DataGrid的几个小技巧的全部內容,希望文章能夠幫你解決所遇到的問題。

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