【问题标题】:GridView OnSelectedIndexChanged call JavaScript functionGridView OnSelectedIndexChanged 调用 JavaScript 函数
【发布时间】:2012-05-21 17:14:02
【问题描述】:

我可以在 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?)

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

【问题讨论】:

    标签: javascript asp.net selectedindexchanged


    【解决方案1】:

    OnSelectedIndexChangedserver event,而不是 javascript 事件。

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

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


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

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

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

    【讨论】:

      【解决方案2】:

      使用 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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-06-27
        • 1970-01-01
        • 2013-02-03
        • 2012-02-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多