На моей странице я определил элементы управления TextBox1, Label1 и GridView1. Внутри GridView1 я определил следующий шаблон:
<asp:TemplateField>
<ItemTemplate>
<asp:LinkButton runat="server" Text="Edit" CommandName="Edit" ID="cmdEdit" />
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox Text='<%# Bind("Notes") %>' runat="server" id="textBoxNotes" />
<br /><br />
<asp:LinkButton runat="server" Text="Update"
CommandName="Update" ID="cmdUpdate" />
<asp:LinkButton runat="server" Text="Cancel"
CommandName="Cancel" ID="cmdCancel" />
</EditItemTemplate>
</asp:TemplateField>
Если пользователь вводит текст в textBoxNotes и нажимает кнопку cmdUpdate, то при обратной передаче этот текст будет уже доступен при вызове Page_Load ().
Таким образом, если пользователь до нажатия кнопки обновления cmdUpdate также вводил в TextBox1 строку «что-то», то следующий код извлечет текст, введенный пользователем в textBoxNotes
protected void Page_Load(object sender, EventArgs e)
{
if(TextBox1.Text=="text from Notes")
Label1.Text =((TextBox)gridEmployees.Rows[0].Cells[0].FindControl("textBoxNotes")).Text;
}
A) Следующий код должен также извлечь текст, введенный пользователем в textBoxNotes, но как только я нажимаю кнопку cmdEdit, я получаю «Ссылка на объект не установлена на экземпляр объекта».
protected void Page_Load(object sender, EventArgs e)
{
if(IsPostBack)
Label1.Text =((TextBox)gridEmployees.Rows[0].Cells[0].FindControl("textBoxNotes")).Text;
}
Почему я получаю это исключение? Похоже, что textBoxNotes не существует. Но почему бы ему не существовать?
1022 * спасибо *