我正在尝试从 java-script 触发回发并传递事件参数。我能够触发回发 **但无法传递事件参数。
以下功能不起作用。它不喜欢 ClientScript.GetPostBackEventReference
中的 args
参数。
<script type="text/javascript">
function TriggerServerSideClick(args) {
//btnDummy is a asp.net server-side button control
<%=ClientScript.GetPostBackEventReference(btnDummy, args , true)%>
//tried this -> <%= 'ClientScript.GetPostBackEventReference
// (btnDummy,' + args + ', true)' %> ,
// but i guess i am definitely missing something.
}
</script>
我在这里缺少什么?
我知道以下内容有效
__doPostBack('btnDummy', args);
但希望远离 __doPostBack
,因为这种情况最终可能会改变,并尝试使用 ClientScript.GetPostBackEventReference
。
感谢您的宝贵时间。
@Brian:非常感谢您的跟进。我尝试了你的占位符方法,但出现了 javascript 错误。 (消息:应为“;”)
这是 View 源代码片段:
var postbackUrl = '__doPostBack('ctl00$MainContent$btnDummy','{0}')';
function TriggerServerSideClick(args) {
var url = String.format(postbackUrl, args);
eval(url);
}
最佳答案
试试这个:
var postbackUrl = '<%=ClientScript.GetPostBackEventReference(btnDummy, "{0}", true)%>';
function TriggerServerSideClick(args) {
var url = String.format(postbackUrl, args);
eval(url);
}
在参数应该所在的位置放置一个占位符,然后使用客户端方法替换占位符(客户端 String.format 方法)并使用它进行回发。
HTH。
关于javascript - 使用 ClientScript.GetPostBackEventReference 时将事件参数从 javascript 传递到代码隐藏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6508454/