无法使用Jquery更改gridview列文本

时间:2012-09-28 06:18:25

标签: jquery asp.net gridview

$('#<%= 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]);

});

我的gridview包含每行的按钮,用户将单击此按钮将同一行中的dropdownlist的更改值提交回服务器,但在提交给服务器之前,我想将“amt”列的文本更改为其他内容。

我不确定为什么“amt”列只会在我将此行设置为event.preventDefault(); // 此行 ** //。如果删除它,则无效。

请帮助,谢谢。

3 个答案:

答案 0 :(得分: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.
});

答案 1 :(得分:0)

“提交”按钮的默认操作是提交表单..

因此,当您单击按钮时,实际上已完成更改,并且在提交Form之后不久,因此有一个PostBack ..一旦发生回发,HTML将呈现回默认HTML ..

因此,更改不会反映在屏幕上。

但是当你包含e.preventDefault()时,会阻止默认操作,因此不会发生回发..

这就是这次改变的原因..

答案 2 :(得分:0)

将此行添加到Page_Load事件,它会导致ASP.NET定义__doPostBack javascript函数

ClientScript.GetPostBackEventReference(this, string.Empty);

然后将此行添加到点击事件

__doPostBack($(this).attr('name'), '');