在asp.net中,通過編程訪問Page上的普通控件也好,訪問Master上面的普通控件和ContentPlaceHolder控件都行。
但是如何在內(nèi)容頁上訪問Content控件呢?
模仿Label控件那樣,真接使用ID訪問失??!
用FindControl查找失?。?br>
下面的結(jié)果,只有第三個是False!
Response.Write(Page.FindControl("Content1") == null);
Response.Write(Page.FindControl("ContentPlaceHolder1") == null);
Response.Write(Master.FindControl("ContentPlaceHolder1") == null);
怎么辦呢?請高手指教!
答案1
------其他回答(10分)---------
Content
已經(jīng)不屬于自己了,而是母板頁了。。
要這么訪問:
Master.FindControl("Content對應(yīng)的ContentPlaceHolderID")原本搜索到這里來的,自己后來分析分析,找到原因,貼上答案,幫助后來人!
www.shanrui.net
------其他回答(10分)---------
&
this.Master.FindControl("ContentPlaceHolder1").findControl("gridview")等等就這樣。
------其他回答(10分)---------
參考:http://blog.csdn.net/gdjlc/archive/2009/10/27/4733198.aspx
我寫的例子:分別設(shè)置母版頁和內(nèi)容頁控件的值
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>無標(biāo)題頁</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)
{
//內(nèi)容頁
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();
}
//母版頁
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();
}