如何在javascript中调用委托?
本文关键字:调用 javascript | 更新日期: 2023-09-27 18:02:31
我正在写一个javascript
function ValueChanges()
{
Parent = document.getElementById('<%= grvMultiChoiceAnswerList.ClientID %>');
var items = Parent.getElementsByTagName('textarea');
var chkboxControl = Parent.getElementsByTagName('checkbox');
for (i = 0; i < items.length; i++) {
var hdnTextControl, hdnExplanation;
hdnTextControl = (items[i].id).replace("txtText", "hdnText");
hdnExplanation = (items[i].id).replace("txtExplanation", "hdnExplanation");
if (items[i].id.split("_")[5] == "txtText") {
if (items[i].value != document.getElementById(hdnTextControl).value) {
var ssave = window.confirm('Your changes are not saved. Do you want to save your changes before you exit.')
if (ssave == true) {
document.getElementById('<%=btnUpdate.ClientID%>').click(); // I WANT TO REPLACE THIS LIKE SO MY DELEGATE GETS FIRE
return false;
}
else
return true;
}
}
}
我有一个委托
grvMultiChoiceAnswerList.RowUpdating += delegate(object obj, GridViewUpdateEventArgs args)
{
SaveFields();
if (ReloadContent != null)
ReloadContent(null, EventArgs.Empty);
};
现在我想在我的java脚本中调用这个委托,并希望替换document.getElementById('<%=btnUpdate.ClientID%>').click();当if(ssave==ture)条件为真
为了从javascript访问服务器上的"methods",您需要使用javascript进行回发,如:
__doPostBack('MyBtn','');
对于服务器来说,它的作用与
相同document.getElementById('<%=btnUpdate.ClientID%>').click();
,但对于客户端,它将跳过与点击按钮链接的任何javascript。
要访问服务器端,您需要从javascript中模拟事件的触发,以便asp.net页面可以识别它并依附于它。添加网格视图的update列并查看生成的javascript,它将为您提供线索,让您知道在dopostback中触发什么。之后,您可能需要保留列,但可以使用css隐藏它。