2011-05-13 59 views
0

我有一個asp.net頁面內容如下。在Panel中有一個HtmlInputText控件,其Enabled =「false」。我在btnSet_Click中設置HtmlInputText控件的Value屬性,然後爲面板設置Enabled = true。回發完成後,HtmlInputText的值將丟失。以下是我嘗試的案例列表:asp.net HtmlInputText在禁用面板內丟失它的價值在回發

  • 當我使用asp:TextBox而不是HtmlInputText時,它工作正常。但以上是複雜用戶控件使用的簡化演示。基本上,改變它不是一種選擇。
  • 當我將面板和按鈕放在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; 
} 

回答

0

其實HTML服務器控件(如:)有沒有識別客戶端瀏覽器訪問當前頁面的能力的機制。 但是,Web服務器控件(例如:asp:TextBox)不會因瀏覽器兼容性問題而自行處理。

Web服務器控件給你更多的自由度,靈活性和控制這些控件的行爲......所以用它來實現你的目的。

相關問題