0

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

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

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

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

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

谢谢你。

4

2 回答 2

1

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

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

于 2012-08-02T18:05:58.157 回答
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;
     }

这对我有用。

于 2012-08-02T18:54:41.087 回答