2

我有一个带有一些禁用控件的页面,它看起来像这样

<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",当我单击 ImageButton 时,禁用的文本框值也不会提交给服务器。我用萤火虫检查了这个,也在VS中检查了旧值。

但是,当我在第一个文本框中按 TAB 时,无论是否设置了 submitdisabledcontrols,都会发布第二个文本框值...

有任何想法吗?

4

3 回答 3

0

该表单属性指出“获取或设置一个布尔值,指示是否强制在客户端禁用控件以提交其值。”,所以我认为您需要使用客户端禁用属性,而不是服务器端启用属性,如:

<asp:TextBox .. disabled="disabled" />
于 2010-08-13T15:47:45.720 回答
0

万一其他人像我一样出现在这个页面上,我发现“submitdisabledcontrols = true”不起作用的原因是因为我的页面文档类型:

<!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">

然后它起作用了。

希望这可以帮助某人:)

于 2014-05-26T07:21:15.743 回答
0

代替

control.Enabled = false; 

利用

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

因此,从 asp .net 的角度来看,该控件仍处于启用状态,但它在客户端呈现为禁用的控件。

于 2014-01-31T04:50:47.550 回答