2012-08-02 56 views
0

現在我有一個模板列一個DataGrid如下:如何攔截datagrid中的超鏈接點擊?

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

的OnItemDataBound方法建立動態的超鏈接的NavigateUrl屬性的基礎上,在這個數據網格的另一列,其中包含一個GUID。通過單擊超鏈接選擇一行可以爲與該GUID聯繫的Dynamics CRM網頁生成一個動態CRM網頁。該程序通過CRM中的功能區按鈕單擊,通過JScript啓動。

該系統工作正常,但我發現我現在需要攔截該點擊事件。我嘗試添加一個OnSelectedIndexChanged事件,但這被忽略;執行似乎並沒有停止在那裏。

是否有任何方法來攔截超鏈接點擊,或者,相反,是否有另一種控制我可以使用,這將允許建立動態網址和攔截點擊事件?

謝謝。

回答

1

您必須在客戶端執行此操作,特別是在「onclick」事件中。

創建一個JavaScript函數,例如, clickIntercept()這將執行nessessery操作befor導航;然後在代碼中將NavigateURL屬性賦值爲「onclick」屬性的值爲「clickIntercept」。

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; 
    } 

這對我的作品。