0

ボタンがあります

<asp:Button ID="submitRegionsButton" runat="server" Text="OK" OnClick="OnSubmitRegion" />

クリックすると、すべてが期待どおりに機能しますが、btn.click() を使用して JavaScript 関数を呼び出すと、クリック コマンドが実行されません。ボタンは適切に見つかりましたが、動作しないか、コード ビハインドで OnClick 関数を実行しません。

何か案は?IEで動作しますが、Firefoxはテストしていません

さて、firefox でテストしましたが、そこでは動作しません。.click() への実際の呼び出しまで、すべてが正しく機能します。理由はわかりません:/

クリックを呼び出すコード:

    function dropDownProductBlur() {
        if (isItemClicked) {
            var combo = $find("<%= productDropDown.ClientID %>");
            var btnSubmitProd = $get(combo.get_id() + "_Footer" + "_submitProductsButton");
            if (btnSubmitProd)
                btnSubmitProd.click();
        }
    }

理解するために、ボタンはドロップダウン内に含まれており、ドロップダウンが閉じると、ボタンが「クリック」されます (または、そうであるはずです)。手動でボタンをクリックすると、検索が機能し、ボタンが適切に検索されます。 .

4

1 に答える 1

1

私は最近、この問題に遭遇しました。問題は、javascript では、この .click() がコンポーネントの onClientClick イベントとして扱われるか、まったく別のものとして扱われることだと思います。これについてはわかりません。

いずれにせよ、私の解決策: btnSubmitProd.click() を呼び出す代わりに__doPostBack('Foo', 'Bar');、Foo が任意の名前 (通常はコンポーネント、つまり "submitRegionButton") であり、Bar がその名前の任意の値、通常はイベント (つまり "click ") (また、1 つではなく 2 つのアンダースコアがあります)。次に、分離コードで次のようにします。

try {
  if (Request["__EVENTTARGET".ToString() == "Foo" && Request["__EVENTARGUMENT"].ToString() == "Bar" {
    //call the codebehind directly here
    OnSubmitRegion(null null);
  }
}

コードビハインド関数の形式はprotected void OnSubmitRegion(object sender, EventArgs e). これらの変数のいずれかの値が必要な場合、状況はもう少し複雑になります。そうでない場合は、上記を試してください。

于 2013-06-12T13:47:53.707 に答える