现在我有一个带有模板列的数据网格,如下所示:
<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并拦截点击事件?
谢谢。
答案 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;
}
这适合我。