У меня есть UpdatePanel с элементом управления Label1 и кнопкой вне его, Button1 и другим элементом управления Label вне UpdatePanel, Label2. Когда кнопка нажата, я хочу, чтобы текст этикетки быть обновлен в Label1:Элементы управления UpdatePanel недоступны - Ссылка на объект не установлена в экземпляр объекта
ASPX страница
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePartialRendering="true" AsyncPostBackTimeout="0" />
<asp:UpdatePanel ID="UpdatePanel1" UpdateMode="Conditional" runat="server">
<Triggers>
<asp:AsyncPostBackTrigger ControlID="Button1" EventName="Click" />
</Triggers>
<asp:ContentTemplate>
<asp:Label ID="Label1" runat="server"></asp:Label>
</asp:ContentTemplate>
</asp:UpdatePanel>
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" />
<asp:Label ID="Label2" runat="server"></asp:Label>
</form>
Code-Behind
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
Label2.Text = "some text";
Label1.Text = "some text";
}
Это должно быть прямо вперед - Я должен обновить текст Label1 с помощью события нажатия кнопки. Линия Label2 преуспевает (очевидно, она не будет отображаться без обратной пересылки страницы), где строка Label1 терпит неудачу: «Ссылка на объект не является экземпляром объекта». Почему Label1 null, когда он находится прямо на странице, только что находится внутри UpdatePanel? Как я должен создавать элементы управления, которые должны быть уже на странице и доступны, как и Label2?
Неверный закрывающий тег 'Label1'. Это просто опечатка? (То же самое для «Label2» кстати) – ConnorsFan
@ConnorsFan Да, исправлено. Пришлось вводить все здесь вручную с другого компьютера. – vapcguy
Можете ли вы удалить 'AsyncPostBackTimeout =" 0 "'? – ConnorsFan