0

現在、次のようなテンプレート列を持つデータグリッドがあります。

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

OnItemDataBound メソッドは、GUID を含むこのデータグリッド内の別の列に基づいて、ハイパーリンクの NavigateURL プロパティを動的に構築します。ハイパーリンクをクリックして行を選択すると、その GUID を持つ連絡先の Dynamics CRM Web ページが表示されます。このプログラムは、JScript を介して、CRM のリボン ボタン クリックから起動されます。

このシステムは正常に動作しますが、そのクリック イベントをインターセプトする必要があることがわかりました。OnSelectedIndexChanged イベントを追加しようとしましたが、これは無視されました。実行はそこで止まらなかったようです。

ハイパーリンクのクリックを傍受する方法はありますか、逆に、動的 URL の構築とクリック イベントの傍受を可能にする別のコントロールはありますか?

ありがとうございました。

4

2 に答える 2

1

クライアントで、特に「onclick」イベントでこれを行う必要があります。

clickIntercept()たとえば、ナビゲーションの前に必要な操作を実行する JavaScript 関数を作成します。次に、NavigateURL プロパティを割り当てるコードで、「onclick」属性に「clickIntercept」の値を割り当てます。

于 2012-08-02T18:05:58.157 に答える
0

トレックスタッフ、ご回答ありがとうございます。

また、ハイパーリンクを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 に答える