在asp.net中,通過(guò)編程訪(fǎng)問(wèn)Page上的普通控件也好,訪(fǎng)問(wèn)Master上面的普通控件和ContentPlaceHolder控件都行。
但是如何在內容頁(yè)上訪(fǎng)問(wèn)Content控件呢?
模仿Label控件那樣,真接使用ID訪(fǎng)問(wèn)失??!
用FindControl查找失??!
下面的結果,只有第三個(gè)是False!
Response.Write(Page.FindControl("Content1") == null);
Response.Write(Page.FindControl("ContentPlaceHolder1") == null);
Response.Write(Master.FindControl("ContentPlaceHolder1") == null);
怎么辦呢?請高手指教!
答案1
------其他回答(10分)---------
Content
已經(jīng)不屬于自己了,而是母板頁(yè)了。。
要這么訪(fǎng)問(wèn):
Master.FindControl("Content對應的ContentPlaceHolderID")原本搜索到這里來(lái)的,自己后來(lái)分析分析,找到原因,貼上答案,幫助后來(lái)人!
www.shanrui.net
------其他回答(10分)---------
&
this.Master.FindControl("ContentPlaceHolder1").findControl("gridview")等等就這樣。
------其他回答(10分)---------
參考:http://blog.csdn.net/gdjlc/archive/2009/10/27/4733198.aspx
我寫(xiě)的例子:分別設置母版頁(yè)和內容頁(yè)控件的值
MasterPage.master<%@ Master Language="C#" AutoEventWireup="true" CodeFile="MasterPage.master.cs" Inherits="MasterPage" %>
<!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>無(wú)標題頁(yè)</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Button ID="btn11" runat="server" Text="Button" /> <br />
<asp:Button ID="btn12" runat="server" Text="Button" /><br />
<asp:Button ID="btn13" runat="server" Text="Button" /><br />
<asp:Button ID="btn14" runat="server" Text="Button" /><br />
<asp:Button ID="btn15" runat="server" Text="Button" /><br />
<asp:Button ID="btn16" runat="server" Text="Button" /><br />
<asp:Button ID="btn17" runat="server" Text="Button" /><br />
<asp:contentplaceholder id="ContentPlaceHolder1" runat="server">
</asp:contentplaceholder></div>
</form>
</body>
</html>
test8.aspx
<%@ Page Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="test8.aspx.cs" Inherits="test8" Title="Untitled Page" %>
<asp:Content ID="
Content1" ContentPlaceHolderID="
ContentPlaceHolder1" Runat="Server">
<asp:Button ID="btn1" runat="server" Text="Button" /> <br />
<asp:Button ID="btn2" runat="server" Text="Button" /><br />
<asp:Button ID="btn3" runat="server" Text="Button" /><br />
<asp:Button ID="btn4" runat="server" Text="Button" /><br />
<asp:Button ID="btn5" runat="server" Text="Button" /><br />
<asp:Button ID="btn6" runat="server" Text="Button" /><br />
<asp:Button ID="btn7" runat="server" Text="Button" /><br />
<asp:Button ID="Button9" runat="server" OnClick="Button9_Click" Text="test" />
</asp:Content>
test8.aspx.cs
protected void Button9_Click(object sender, EventArgs e)
{
//內容頁(yè)
ContentPlaceHolder c = (ContentPlaceHolder)Master.FindControl("ContentPlaceHolder1"); object[] btn = new object[7];
for (int i = 1; i < 8; i++)
{
btn[i - 1] = (Button)c.FindControl("btn" + i.ToString());
((Button)btn[i - 1]).Text = "修改" + i.ToString();
}
//母版頁(yè)
object[] btn2 = new object[7];
for (int j = 1; j < 8; j++)
{
btn2[j-1] = (Button)Page.Master.FindControl("btn" + (j+10).ToString());
((Button)btn2[j-1]).Text = "修改" + (j+10).ToString();
}