У меня есть содержимое страницы asp.net, как показано ниже. Внутри панели есть элемент управления HtmlInputText с параметром Enabled="false". Я устанавливаю свойство Value элемента управления HtmlInputText в btnSet_Click, а затем устанавливаю Enabled=true для панели. После завершения обратной передачи значение HtmlInputText теряется. Ниже приведен список случаев, которые я пробовал:
- Когда я использую asp:TextBox вместо HtmlInputText, он отлично работает. Но приведенное выше является упрощенной демонстрацией использования сложного пользовательского элемента управления. В общем, менять не вариант.
- Когда я помещаю панель и кнопки в asp:UpdatePanel, она снова работает нормально.
- Когда я устанавливаю disabled="disabled" (в разметке) для элемента управления HtmlInputText, он снова работает нормально.
Что может быть причиной такого поведения?
<asp:Panel ID="pnl" runat="server" Enabled="false">
<input type="text" runat="server" id="txt" />
</asp:Panel>
<asp:Button ID="btnSet" runat="server" Text="Set" OnClick="btnSet_Click" />
<asp:Button ID="btnEnable" runat="server" Text="Enable" OnClick="btnEnable_Click" />
--
protected void btnSet_Click(object sender, EventArgs e)
{
txt.Value = "Test";
}
protected void btnEnable_Click(object sender, EventArgs e)
{
pnl.Enabled = true;
}