原文:向GridView的模板列绑定OnClientClick的函数时出现了奇怪的问题
GridView的一个模板列中的内容是按钮,需要实现以下的效果:
GridView分页显示数据,点击编辑按钮(模板列)弹出模态窗口以编辑信息,编辑完成后刷新页面,若放弃编辑则不需要刷新页面. 这时就需要点击按钮后调用javascript函数以弹出模态窗口.最初使用以下的方法:
Code
OnClientClick='return openEditWindow(<%#(DataBinder.Eval(Container.DataItem,"ID")))%>'
OnClientClick='return openEditWindow(<%#(DataBinder.Eval(Container.DataItem,"ID")))%>'
可是发现<%#%>部分的代码根本没有得到解析(如果没有javascript函数名时则没有问题).真是奇怪.查了半天,终于学会写一个C#方法openEditWindowString返回javascript调用字符的字符串(return openEditWindow('31');),如下
OnClientClick
=
'
<%#openEditWindowString(DataBinder.Eval(Container.DataItem,"ID").ToString())%>
'
觉得挺奇怪的,有谁知道为什么会出现这种情况么?!拜谢!
或者
OnClientClick='<%#string.Format("return openEditWindow({0})",DataBinder.Eval(Container.DataItem,"id").ToString())%>'