2

デフォルトで無効になっているボタンがありますが、JavaScript によって有効にされます (または無効にされませんか?)。関連コード:

<asp:Button runat="server" ID="btnLoad" Text="Load" 
    OnClick="btnLoad_Click" Enabled="False"/>

以下によって有効になります。

var btnLoad = $get("<%= btnLoad.ClientID %>");
btnLoad.disabled = false;

サーバー上で元のボタン (btnLoad) をポストバックして有効にする別のボタンを接続したところ、うまくいったようです。そのため、サーバーではなくクライアントでボタンが有効になっているようです。ボタンを有効にするために投稿を強制的に戻す以外にできることはないと思いますか? なぜ今でもこの質問を投稿しているのかわかりませんが、とにかく投稿します:)

4

4 に答える 4

3

サーバーが「ああ、そのボタンは無効になっています。そのメッセージは無視します」と考えているためです。

最善の方法は、サーバー側で有効にしてから、ページで JavaScript を使用して無効にし (ページ<script>の上部にタグを配置)、その後、今と同じように再度有効にすることです。

于 2012-12-14T15:08:12.963 に答える
2

属性disabledが存在するということは、それが無効になっていることを意味します。これを試して:

btnLoad.removeAttribute("disabled");
于 2012-12-14T14:52:17.670 に答える
0

そのコントロールのビューステートを無効にして、それが機能するかどうかを確認してください。ビューステートはボタンが無効になったことを「記憶」しており、おそらく on_click イベントを発生させません

于 2012-12-14T15:11:32.380 に答える
0

イベントがサーバーに登録される前にボタンを無効にすると仮定しているため、有効にしても機能しません。

コードビハインドで無効にする場合は、Pre_Render代わりにイベントで無効にしてください。JavaScript で実行している場合は、 で実行してください$(document).ready()

ボタンの onClick をオーバーライドし、JS を使用してポストバックを強制することができない場合:

$('#<%= btnLoad.ClientID %>').onClick(function() {
    __doPostBack("<%= btnLoad.ClientID %>", "");
});
于 2012-12-14T15:13:24.873 に答える