2012-02-15 13 views
1

私は、データベースからバインドされたリンクを持つリストビューを持っています。私はそのリンクがクリックされたときを追跡したいと思っています。これは、どのリンクが最もクリックされたかを知ることができるようになります。私はリンクボタンでこれをやろうとしましたが、訪れたときに色が変わらない問題に遭遇しました。私は、ハイパーリンクがサーバーにヒットしないので、ハイパーリンクでそれを行うことができるのではないかと疑います。これを行う方法に関する提案。保存時間はハイパーリンク/リンクボタンをクリック

これは私がここにlinkbuttons

<asp:ListView ID="lstvTopTen" runat="server"> 
    <ItemTemplate> 

     <tr> 
      <td width="100%"> 
       <asp:LinkButton ID="lbtnUrlLink" runat="server" Text='<%# Bind("NewsTitle") %>' 
        CommandArgument='<%# Bind("NewsUrl") %>' onclick="lbtnUrlLink_Click" 
        OnDataBinding="lbtnUrlLink_DataBinding" CssClass="newslink" /> 
       <asp:Label ID="Label1" runat="server" Text='<%# Bind("NewsDescriptionDisplay") %>' /> 
      </td> 
     </tr> 

    </ItemTemplate> 
</asp:ListView> 

をやった方法ですが、この記事では答えで私のcss

.newslink 
{ 
    display:block; 
    margin: 15px 0 0 0; 
    text-decoration: none; 
    font-size:1.2em; 
    line-height: 1.8em; 
    border-bottom:1px solid #CCC; 
} 

.newslink:visited 
{ 
    color: Red; 
} 

答えて

0

だから、これは私がそれをやってしまった方法です。

<asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl='<%# Bind("NewsUrl") %>' Target="_blank" 
        onclick="countClick(this.href);" CssClass="newslink" Text='<%# Bind("NewsTitle") %>' /> 



<script type="text/javascript" language="javascript"> 

    function countClick(name) { 

     PageMethods.CountClick(name); 

    } 

</script> 
-1

ルックです。あなたはかなり近いです。

.newslink a:visited 
{ 

} 

Link

+0

私はこれを動作させることはできませんか? –

+0

私は仕事にホバー得ることができますが、私は訪問またはアクティブになることができません。ホバーは ".newslink:hover"を実行しているときにのみ動作します。他のものは私がやる方法では動作しません。 –

1

問題は、LinkBut​​tonコントロールを作成するときに、レンダリングされたコードが持っているということである代わりに、別のページへのURLのjavascript関数呼び出しを持っています。したがって、ブラウザはこれらを履歴に保存しません。 疑似クラスを訪れたのは、のURLのjavascript関数呼び出しでは機能しないため、この場合は機能しません。

これを回避するには、ユーザーがリンクをクリックした時点でキャプチャしてスタイルを変更する新しいjavascript関数を作成する必要があります。例えば

<script> 
function ChangeLinkColour() 
{ 
    document.getElementById('myLink').style.color = "Black"; 
    return false; 
} 
</script> 

あなたのLinkBut​​tonは次のようになります。

<asp:LinkButton ID="myLink" runat="server" Text="Click me" OnClientClick="return ChangeLinkColour();" CssClass="a"></asp:LinkButton> 
+0

詳細を見ると、まさに正しいです! – Etch

+0

JavaScriptのハイパーリンクをクリックしてデータベースに追加する方がより現実的でしょうか?リンクをクリックしたままにしておくとよいでしょう。私はこのjavascriptメソッドを行う場合、それを保持しません。 –

+0

訪問した色を維持しなければならない場合、そのリンクボタンをハイパーリンクに変更することができます。次に、hrefで最後にクエリーストリング値を追加します。したがって、pageloadでそのクエリーストリングの値をチェックし、リンクがデータベース内でクリックされた時間を増やします。あなたが気づいたように、これはあなたにクリックされた正確な回数を与えないかもしれません... – skub

関連する問題