2017-01-29 22 views
0

Итак, у меня есть проект Web Forms в Visual Studio с главной страницей. Это Add.aspx у меня есть:Установить текст TextBox на специальное значение из класса Mater Page 0

<div class="form-group"> 
    <asp:textBox runat="server" ID="surname" CssClass="textbox"></asp:textBox> 
    <label for="surname">Surname</label> 
</div> 

Я хочу, чтобы установить текст в этом TextBox из мастер-страницы. В Add.aspx.cs у меня есть:

protected void Page_Load(object sender, EventArgs e) 
{ 
} 
public void SetSurname(String value) 
{ 
    this.surname.Text = value; 
} 

И Site.Master.cs Я пытаюсь вызвать SetSurname установить его особое значение:

protected void Page_Load(object sender, EventArgs e) 
{ 
    Add AddForm = new Add(); 
    AddForm.SetSurname("Test"); 
} 

Но я получаю сообщение об ошибке: Object reference does not point to an instance of an object указывая на this.surname.Text = value;. Я где-то ошибаюсь? Mabye я должен использовать некоторые функции, такие как Page_Afterload или т.п.

ответ

0

Если бы я understant правильно, TextBoxsurename существует только в Add.aspx. Если это так, вы не сможете вызвать метод SetSurname() из любого места, кроме внутри Add.aspx, потому что нет гарантии, что элемент управления surename существует на текущей отображаемой странице. Кроме того, строка Add AddForm = new Add(); бессмысленна, если вы не используете ее где-то еще в коде. Если вы хотите использовать SetSurname(), вы должны сделать это от Page_Load() от Add.aspx.

Если я ошибаюсь, пожалуйста, сообщите мне об этом.