0

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

任何人都可以确认这是否可以做到,以及是否可以正确的方法来做到这一点?

4

2 回答 2

2

OnSelectedIndexChanged服务器事件,而不是 javascript 事件。

服务器控件GridView不允许挂钩开箱即用的 javascript 方法。

您需要扩展它并创建此类方法,或使用其他可作为第 3 方的网格控件。


你可以做的,所以你不会在代码中搞砸太多,例如,使用 jQuery 连接到所有行并在单击该行上的某些内容时触发一个事件,保持返回(提交表单返回服务器)。

为此,您需要查看输出 HTML 并从那里开始。

这是我转移到 MVC 而不是继续使用 WebForms 的众多功能之一,在 MVC 中,您可以完全控制页面中发生的事情,并且您可以自己做所有事情,而不必担心这些事情。

于 2012-05-21T17:34:33.330 回答
0

使用 Row Data Bound Event 绑定您的 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将调用 。

于 2014-02-16T23:31:30.627 回答