【问题标题】:How can I intercept hyperlink click from datagrid?如何拦截来自数据网格的超链接点击?
【发布时间】:2012-08-02 17:59:11
【问题描述】:

现在我有一个带有模板列的数据网格,如下所示:

<asp:TemplateColumn> <ItemTemplate> <asp:HyperLink ID="lnkSelect" runat="server" Target="_blank" /> </ItemTemplate></asp:TemplateColumn>

OnItemDataBound 方法基于此数据网格中包含 GUID 的另一列动态构建超链接的 NavigateURL 属性。通过单击超链接选择一行会为具有该 GUID 的联系人打开一个 Dynamics CRM 网页。该程序通过 JScript 从 CRM 中的功能区按钮单击启动。

这个系统工作正常,但我发现我现在需要拦截该点击事件。我尝试添加一个 OnSelectedIndexChanged 事件,但这被忽略了;执行似乎并没有就此停止。

有什么方法可以拦截超链接点击,或者相反,我可以使用另一个控件来允许构建动态 URL 并拦截点击事件吗?

谢谢。

【问题讨论】:

    标签: datagrid hyperlink crm


    【解决方案1】:

    您必须在客户端执行此操作,特别是在“onclick”事件中。

    创建一个 JavaScript 函数,例如clickIntercept() 将在导航之前执行nessessery 操作;然后在您分配 NavigateURL 属性的代码中,为“onclick”属性分配“clickIntercept”的值。

    【讨论】:

      【解决方案2】:

      感谢您的回复,Trekstuff。

      我还发现我可以将我的超链接更改为 ButtonColumn,删除 OnItemDataBound 代码并改用 OnItemCommand 方法。

      对于我拥有的 OnItemCommand:

      switch (((LinkButton)e.CommandSource).CommandName)
           {
                  case "Select":    
                     String selectedContact = ServerURL + QueryStringPrefix + e.Item.Cells[1].Text + QueryStringSuffix;
                     Response.Redirect(selectedContact); 
                     break;
           }
      

      这对我有用。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-02-02
        • 1970-01-01
        • 2011-05-22
        • 1970-01-01
        • 2015-04-20
        • 1970-01-01
        • 2011-04-22
        相关资源
        最近更新 更多