QA@IT
«回答へ戻る

回答を投稿

【追記3】
クライアントスクリプトで click() してもポストバックがかからない理由が分かりました。

tr 要素の click イベントにリスナーを設定して、そのリスナーの中で tr 要素の中の input 要素をクリックするのでバブリングで無限ループになるのがダメな原因でした。

以下のようにバブリングを止めればうまく行くと思います。ただし、IE8 以前の DOM Level 3 Events をサポートしていないブラウザまでうまく行くかどうかは未検証です。お試しください。

$(function () {
$(document).on("click", "#<%=GridA.ClientID%> tr.dataRow", function () {
var ele = $(this).find('input:submit');
ele.click(function (event) {
event.stopPropagation();
});
ele.click();
});
});

【追記3】
クライアントスクリプトで click() してもポストバックがかからない理由が分かりました。

tr 要素の click イベントにリスナーを設定して、そのリスナーの中で tr 要素の中の input 要素をクリックするのでバブリングで無限ループになるのがダメな原因でした。

以下のようにバブリングを止めればうまく行くと思います。ただし、IE8 以前の DOM Level 3 Events をサポートしていないブラウザまでうまく行くかどうかは未検証です。お試しください。


$(function () {
    $(document).on("click", "#<%=GridA.ClientID%> tr.dataRow", function () {
        var ele = $(this).find('input:submit');
        ele.click(function (event) {
            event.stopPropagation();
        });
        ele.click();
    });
});