如何从datagrid拦截超链接点击?

时间:2012-08-02 17:59:12

标签: datagrid hyperlink crm

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

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

OnItemDataBound方法根据此数据网格中包含GUID的另一列动态构建Hyperlink的NavigateURL属性。通过单击超链接选择行将显示与该GUID的联系人的Dynamics CRM网页。该程序是通过JScript在CRM中单击带状按钮启动的。

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

有没有办法拦截超链接点击,或者相反,是否有另一个我可以使用的控件,它可以构建动态URL并拦截点击事件?

谢谢。

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

感谢您的回复,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;
     }

这适合我。