$('#<%= 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(); // 此行 ** //。如果删除它,则无效。
请帮助,谢谢。
答案 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'), '');