GridView OnSelectedIndexChanged调用JavaScript函数

时间:2012-05-21 17:14:03

标签: javascript asp.net selectedindexchanged

我可以在GridView的SelectedIndexChanged事件上调用JS函数吗? 我提到了这两个SO帖子 - Post 1Post 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?)

任何人都可以确认是否可以这样做,以及是否能以正确的方式进行此操作?

2 个答案:

答案 0 :(得分:2)

OnSelectedIndexChangedserver 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