2010-08-13 30 views
2

我有一些禁用的控件的頁面時,它看起來像這樣Asp.net按鈕不會提交禁用的控件,即使submitdisabledcontrols =「真」

<form id="form1" runat="server" submitdisabledcontrols="true"> 
    <asp:UpdatePanel ID="upp" runat="server"> 
     <ContentTemplate> 
      <asp:TextBox ID="textbox1" runat="server" AutoPostBack="True" ontextchanged="textchaged_handler" />   
      <asp:TextBox ID="textbox2" runat="server" /> 
     </ContentTemplate> 
    </asp:UpdatePanel> 
    <asp:ImageButton ID="ibVerify" runat="server" OnClick="btnVerify_Click" ImageUrl="~/img/imagebutton.png" AlternateText="Verify" /> 
</form> 

編程方式,第二個文本框與一些禁用服務器端代碼,在初始化期間。

的問題是,即使在形式標籤設置submitdisabledcontrols =「true」,則禁用文本框的值不會submited當我點擊的ImageButton服務器。我在VS,在舊值被檢索與螢火蟲檢查這一點,也。

當我按下TAB在第一個文本框,但是,第二個文本框的值被公佈,無論submitdisabledcontrols設置或不...

任何想法?

回答

0

該表單屬性指出:「獲取或設置一個布爾值,指示是否強制客戶端上禁用提交它們的值的控制。」,所以我覺得你需要使用客戶端禁用的財產,而不是服務器 - 側enabled屬性,如:

<asp:TextBox .. disabled="disabled" /> 
+1

了服務器端啓用=假,你的代碼的HTML ...渲染爲禁用=「禁用」,並沒有工作 – 2010-08-13 16:57:44

+0

啓用應該是真實的;它不可能是假的。 – 2010-08-13 18:32:58

0

而不是

control.Enabled = false; 

使用

control.Attributes.Add("disabled", "disabled"); 

因此,從一個asp .NET透視控制仍啓用,但它呈現客戶端作爲禁用控制。

0

如果其他任何一個降臨在這個頁面像我一樣,我發現了原因,「submitdisabledcontrols =真正的」不工作是因爲我的網頁的doctype:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 

當我改變了這:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

然後它工作。

希望這可以幫助別人:)