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>

プログラム的に、2番目のテキストボックスは、初期化中にサーバー側のコードで無効になります。

問題は、フォームタグにsubmitdisabledcontrols = "true"を設定しても、ImageButtonをクリックしたときに、無効にされたテキストボックスの値がサーバーに送信されないことです。これをfirebugで確認しました。また、古い値が取得されるVSでも確認しました。

ただし、最初のテキストボックスでTabキーを押すと、submitdisabledcontrolsが設定されているかどうかに関係なく、2番目のテキストボックスの値が送信されます...

何か案は?

4

3 に答える 3

0

私のように他の誰かがこのページに出くわした場合、「submitdisabledcontrols = true」が機能しない理由は私のページの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">

それからそれは働いた。

これが誰かを助けることを願っています:)

于 2014-05-26T07:21:15.743 に答える
0

それ以外の

control.Enabled = false; 

使用する

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

したがって、asp .net の観点からは、コントロールは引き続き有効ですが、無効なコントロールとしてクライアント側でレンダリングされます。

于 2014-01-31T04:50:47.550 に答える
0

そのフォーム属性には、「クライアントでコントロールを強制的に無効にして値を送信するかどうかを示すブール値を取得または設定する」と記載されているため、サーバー側の ENabled プロパティではなく、クライアント側の無効なプロパティを使用する必要があると思います。次のように:

<asp:TextBox .. disabled="disabled" />
于 2010-08-13T15:47:45.720 に答える