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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

自定函数获取datagrid,datalist,rpeater控件中header,footer栏中控件

發布時間:2023/12/1 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 自定函数获取datagrid,datalist,rpeater控件中header,footer栏中控件 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在論壇上看到很多關于datagrid,gridview,datalist,rpeater提取header,footer中控件的問題,整理了一下.供大家分享
下面我以DataGrid為便進行說明.
footer欄又稱頁腳欄,在很多時候我們可以在該欄放頁碼及相當的功能鍵.但是最后在獲得這些控件引用的時候就會有點麻煩,由于footer(頁腳),header(頁眉)都不在DataGrid.Items屬性中,該屬性返回的集合只包含數據綁定生成的item,所以必須用其他方法來做.下面是我從csdn和其他地方總結而來的幾種方法:
1.在ItemCreated或者ItemDataBound中對其控件進行查找;
if?(e.Item.ItemType?==?ListItemType.Footer)
{
?
}
2.遍歷DataGrid中的所有Item.DataGrid.Controls[0]一般來說為生成的Table.
foreach?(DataGridItem?item?in?myGrid.Controls[0].Controls)
?????????{
?????????????
if(item.ItemType==ListItemType.Footer)
??????????{
????????????????????????? //用Item.FindControl查找相應的控件
??????????????????????????????}

?????????}

前面兩種方法大家都經常用,這里再列出以前在csdn上看到的思歸大哥提出的另外兩種方法。
3.Table t=(Table)DataGrid.Controls[0];
//如果你有Pager的話,那么你需要這樣編碼T.Rows[T.Rows.Count-2]去獲得Pager
DataGridItem item=(DataGridItem)t.Rows[t.Rows.Count-1];
//該item就是Footer,此時你就可以用FindControl查找了。
下面為一個完整的demo

前臺頁;

<%@?Page?Language="C#"?AutoEventWireup="true"?CodeFile="SearchHeaderAndFooterControl.aspx.cs"
????Inherits
="SearchHeaderAndFooterControl"?%>

<!DOCTYPE?html?PUBLIC?"-//W3C//DTD?XHTML?1.0?Transitional//EN"?"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html?xmlns="http://www.w3.org/1999/xhtml">
<head?runat="server">
????
<title>F</title>
</head>
<body>
????
<form?id="form1"?runat="server">
????
<div>
????????
<asp:DataGrid?runat="server"?ID="gvUserView"?DataSourceID="ldsUserData"?ShowFooter="True"
????????????AllowCustomPaging
="True"?AllowPaging="True"?
????????????onitemdatabound
="gvUserView_ItemDataBound">
????????????
<Columns>
????????????????
<asp:TemplateColumn>
????????????????????
<HeaderTemplate>
????????????????????????
<asp:TextBox?runat="server"?ID="txtHeaderInfo"?Text="this?is?header?textbox?value!"></asp:TextBox>
????????????????????
</HeaderTemplate>
????????????????
</asp:TemplateColumn>
????????????????
<asp:TemplateColumn>
????????????????????
<FooterTemplate>
????????????????????????
<asp:TextBox?runat="server"?ID="txtFooterInfo"?Text="this?is?footer?textbox?value!"></asp:TextBox>
????????????????????
</FooterTemplate>
????????????????
</asp:TemplateColumn>
????????????
</Columns>
????????
</asp:DataGrid>
????????
<asp:LinqDataSource?ID="ldsUserData"?runat="server"?ContextTypeName="DataClassesDataContext"
????????????TableName
="Customers">
????????
</asp:LinqDataSource>
????????
<br?/>
????????
<asp:Button?ID="btnGetFooterControlValue"?runat="server"?Text="獲取footer控件"?OnClick="btnGetFooterControlValue_Click"?/>
????????
<asp:Button?ID="btnGetHeaderControlValue"?runat="server"
????????????Text
="獲取header控件"?onclick="btnGetHeaderControlValue_Click"?/>
????
</div>
????
</form>
</body>
</html>


后臺頁;

?

using?System;
using?System.Collections;
using?System.Configuration;
using?System.Data;
using?System.Linq;
using?System.Web;
using?System.Web.Security;
using?System.Web.UI;
using?System.Web.UI.HtmlControls;
using?System.Web.UI.WebControls;
using?System.Web.UI.WebControls.WebParts;
using?System.Xml.Linq;

public?partial?class?SearchHeaderAndFooterControl?:?System.Web.UI.Page
{
????
protected?void?Page_Load(object?sender,?EventArgs?e)
????{

????}

????
protected?void?btnGetFooterControlValue_Click(object?sender,?EventArgs?e)
????{
????????
#region?方法1
????????
//foreach?(DataGridItem?item?in?gvUserView.Controls[0].Controls)
????????
//{

????????
//????if?(item.ItemType?==?ListItemType.Footer)
????????
//????{
????????
//????????TextBox?txtFooter?=?item.FindControl("txtFooterInfo")?as?TextBox;
????????
//????????ShowMessage(txtFooter.Text);
????????
//????????break;

????????
//????}
????????
//}
????????#endregion

????????
#region?方法2
????????
//Table?clientTable?=?gvUserView.Controls[0]?as?Table;
????????
//DataGridItem?item?=?(DataGridItem)clientTable.Rows[clientTable.Rows.Count?-?2];

????????
//TextBox?txtFooter?=?item.FindControl("txtFooterInfo")?as?TextBox;
????????
//ShowMessage(txtFooter.Text);
????????#endregion

????????


????}

????
private?void?ShowMessage(string?str)
????{
????????
string?notifyInfo?=?string.Format("alert('{0}');",?str);
????????Page.ClientScript.RegisterClientScriptBlock(GetType(),?
"",?notifyInfo,?true);
????}

????
protected?void?btnGetHeaderControlValue_Click(object?sender,?EventArgs?e)
????{
????????
foreach?(DataGridItem?item?in?gvUserView.Controls[0].Controls)
????????{

????????????
if?(item.ItemType?==?ListItemType.Header)
????????????{
????????????????TextBox?txtHeader?
=?item.FindControl("txtHeaderInfo")?as?TextBox;
????????????????ShowMessage(txtHeader.Text);
????????????????
break;
????????????}
????????}

????}

????
protected?void?gvUserView_ItemDataBound(object?sender,?DataGridItemEventArgs?e)
????{
????????
if?(e.Item.ItemType?==?ListItemType.Header)
????????{
????????????TextBox?txtHeader?
=?e.Item.FindControl("txtHeaderInfo")?as?TextBox;
????????????ShowMessage(txtHeader.Text);

????????}
????????
//if?(e.Item.ItemType?==?ListItemType.Footer)
????????
//{
????????
//????TextBox?txtFooter?=?e.Item.FindControl("txtFooterInfo")?as?TextBox;
????????
//????ShowMessage(txtFooter.Text);

????????
//}
????}
}

?

如果控件為GridView,則進行簡單變換即可使用

?

if?(e.Row.RowType?==?DataControlRowType.Header)
????????{
????????????TextBox?txtHeader?
=?e.Row.FindControl("txtHeaderInfo")?as?TextBox;
????????????ShowMessage(txtHeader.Text);

????????}
????????
//if?(e.Row.RowType?==?DataControlRowType.Footer)
????????
//{
????????
//????TextBox?txtFooter?=?e.Item.FindControl("txtFooterInfo")?as?TextBox;
????????
//????ShowMessage(txtFooter.Text);

????????
//}

DataList,Repeater也是同理

?//if?(e.Item.ItemType?==?ListItemType.Header)
????????
//{

????????
//}
????????if?(e.Item.ItemType?==?ListItemType.Footer)
????????{
????????????TextBox?txtFooter?
=?e.Item.FindControl("txtFooterInfo")?as?TextBox;
????????????
//TextBox?txtFooter?=?e.Item.Controls[1]?as?TextBox;
????????????ShowMessage(txtFooter.Text);
????????}

?

轉載于:https://www.cnblogs.com/symbol441/archive/2007/12/04/981962.html

總結

以上是生活随笔為你收集整理的自定函数获取datagrid,datalist,rpeater控件中header,footer栏中控件的全部內容,希望文章能夠幫你解決所遇到的問題。

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