Есть ли разница между этими двумя сценариями:
(1) Доступ к свойству на главной странице от обычного ребенка
(2) Доступ к свойству на главной странице с вложенной главной страницы
Я пытался получить доступ к текстовому полю на главной странице со страницы содержимого, например:
TextBox a;
a = (TextBox)Master.FindControl("ayyash"); // Master is declared in MasterType directive
defaultTextbox.Text = a.Text; // defaultTextBox is a textbox control inside default.aspx
это работает, но потом, когда я применил тот же метод на вложенной главной странице:
TextBox a;
a = (TextBox)Master.FindControl("ayyash"); // Master is declared in MasterType directive
myTextBox.Text = a.Text; // myTextBox is a textbox control inside child.master
это не работает, я что-то упустил? Я вызываю оба кода в обработчике regulare page_load ...
Я также заметил, что не могу установить значение текстового поля внутри вложенной главной страницы из кода позади, определенно что-то мне не хватает, что это?
Чтобы пролить свет на эту проблему, вот пример:
Вложенная мастер-страница:
<%@ Master Language="C#" MasterPageFile="MasterPage.master" AutoEventWireup="false" CodeFile="MasterPage2.master.cs" Inherits="MasterPage2" %>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
<asp:textbox id="tx2" runat="server" text="this is two"></asp:textbox>
<asp:contentplaceholder id="newstuff" runat="server"></asp:contentplaceholder>
</asp:Content>
Код:
Response.Wrote(tx2.Text);
Я НИЧЕГО не понимаю, почему что я пропустил? обратите внимание, что я также попробовал рекурсивный поиск:
String str = ((TextBox)((Content)FindControl("Content2")).FindControl("tx2")).Text;
все равно ничего