我可以在GridView的SelectedIndexChanged事件上调用JS函数吗? 我提到了这两个SO帖子 - Post 1和 Post 2解决了这个问题,但他们没有帮助。
我试过
OnSelectedIndexChanged="selectedindexchanged()"
然而,作为回报,我收到了 -
'ASP.default_aspx' does not contain a definition for 'selectedindexchanged' and no
extension method 'selectedindexchanged' accepting a first argument of type
'ASP.default_aspx' could be found (are you missing a using directive or an
assembly reference?)
任何人都可以确认是否可以这样做,以及是否能以正确的方式进行此操作?
答案 0 :(得分:2)
OnSelectedIndexChanged
是server event,而不是javascript事件。
服务器控件GridView
不允许使用开箱即用的javascript方法。
您需要扩展它并创建此类方法,或使用其他网格控件作为第三方提供。
你可以做什么,所以你不要在代码中搞砸了,例如,使用jQuery,挂钩所有行并在点击该行上的某些内容时触发事件,保持返回(将表格提交回服务器。)
为此,您需要查看输出HTML的内容并从那里开始。
这是我转移到MVC而不是继续使用WebForms的众多功能之一,在MVC中,您可以完全控制页面中发生的事情,并且您可以自己做所有事情,而不会想知道这样的事情。
答案 1 :(得分:0)
使用行数据绑定事件绑定您的java脚本函数
protected void myGridView_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
DataRowView drv = (DataRowView)e.Row.DataItem;
e.Row.Attributes.Add("onclick", "selectedindexchanged()");
}
}
现在,当您点击网格视图行时,将调用selectedindexchanged
。