以下のようなasp.netページのコンテンツがあります。Enabled="false" を持つ Panel 内に HtmlInputText コントロールがあります。btnSet_Click で HtmlInputText コントロールの Value プロパティを設定し、パネルに対して Enabled=true を設定します。ポストバックが終了すると、HtmlInputText の値が失われます。以下は私が試したケースのリストです:
- HtmlInputText の代わりに asp:TextBox を使用すると、正常に動作します。ただし、上記は複雑なユーザー コントロールの使用法を簡単に示したものです。基本的に、変更はできません。
- パネルとボタンを asp:UpdatePanel に配置すると、再び正常に動作します。
- HtmlInputText コントロールに (マークアップで) disabled="disabled" を設定すると、再び正常に動作します。
この動作の原因は何ですか?
<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;
}