0
$('#<%= gv.ClientID %> :submit[value=Apply]').click(function (event) {
    event.preventDefault(); //***** THIS LINE*******//
    var row = $(this).parents("tr:first");
    var oitemtemplate= row.children("td:eq(4)");
    var amt= row.children("td:eq(3)");              
    var noChild =  oitemtemplate.find('select[id$=ddlSubscribe]').val();
    childSelectedItems = new Array();
    childSelectedItems = noChild.split('|'); 
    amt.text(childSelectedItems[1]);

});

私のグリッドビューには各行のボタンが含まれており、ユーザーはこのボタンをクリックして、同じ行のドロップダウンリストの変更値をサーバーに送信しますが、サーバーに送信する前に、「amt」列のテキストを別のものに変更したいと思います。

この行を入れた場合にのみ「amt」列が変更される理由がわかりません event.preventDefault(); ///この行** //。これを削除すると機能しません。

助けてください、ありがとう。

4

3 に答える 3

0

[送信]ボタンのデフォルトのアクションは、フォームを送信することです。

したがって、ボタンをクリックすると、変更が実際に行われ、その直後にフォームが送信されます。そのため、PostBackがあります。Postbackが発生すると、HTMLはデフォルトのHTMLにレンダリングされます。

したがって、変更は画面に反映されません。

ただし、e.preventDefault()を含めると、デフォルトのアクションが阻止されるため、ポストバックは発生しません。

そのため、今回は変更が反映されます。

于 2012-09-28T06:36:03.150 に答える
0

この行をイベントに追加Page_Loadすると、ASP.NET で__doPostBackJavaScript 関数が定義されます。

ClientScript.GetPostBackEventReference(this, string.Empty);

次に、この行をクリックイベントに追加します

__doPostBack($(this).attr('name'), '');
于 2012-09-28T06:48:20.470 に答える
0

event.preventDefault();送信ボタンのデフォルトの動作を防ぐために使用するものは、自分でフォームを送信する必要があります。

$('#<%= gv.ClientID %> :submit[value=Apply]').click(function (event) {
    event.preventDefault(); //***** THIS LINE*******//
    var row = $(this).parents("tr:first");
    var oitemtemplate= row.children("td:eq(4)");
    var amt= row.children("td:eq(3)");              
    var noChild =  oitemtemplate.find('select[id$=ddlSubscribe]').val();
    childSelectedItems = new Array();
    childSelectedItems = noChild.split('|'); 
    amt.text(childSelectedItems[1]);
   $(this).closest('form').submit(); // submit the form.
});
于 2012-09-28T06:22:58.070 に答える