前提・実現したいこと
DBのテーブルに予め保存している値を、アコーディオンのクリック部分(開く前に見えている部分)の中に内包した状態で、
上部をクリックすると、アコーディオンが開き、
その上で、どのアコーディオンを開いたかというアクセスログを取ることをしたいです。
※アコーディオン自体はjQueryを使って実装済みです。(以下のサイトを参考に実装しましたので、jQueryプラグインは使用しておりません)
参考URL
発生している問題・エラーメッセージ・試したこと
★困っていること
・クリック部分(class="accordion-click")(添付写真の黄色の部分)は、どこをクリックしてもアクセスカウントが取れるようにしたいのですが、
(添付写真ではわかりずらいのですが)この領域内に、Repeaterを使って、既にidとtextの2つをASP.NETのコントロールを使って実装済みです。
アクセスカウントを取るためには、vb側でDBとやりとりする処理(SQL文を書く)が必要→コントロールを使うのが最善だと考えているのですが、クリックイベントを持っているコントロール(ButtonやLinkButtonコントロール)では、実現できませんでした。
※コントロールの中にコントロールもしくはaタグを含むことができないから?と考えています。
もしくは、jQuery(javascript)のファイルで、SQL文を書くことができたらと思いましたが、そのような記事が見当たりませんでした。
該当のソースコード
aspx
1<%@ Page Title="" Language="vb" AutoEventWireup="false" MasterPageFile="~/Source/Site1.Master" CodeBehind="accordion.aspx.vb" Inherits="study_accordion.accordion" %> 2<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server"> 3</asp:Content> 4<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server"> 5 <link rel="stylesheet" href="/CSS/accordion.css" /> 6 'accordion.jsは、「該当のソースコード」の2つめに書いているjQuery(javascript)のファイルのことです。 7 <script src="/Script/accordion.js"></script> 8 <div id="accordion"> 9 <div class="accordion-click"> 10 <asp:HyperLink ID="LinkButton1" runat="server" Text='<%# Eval("id") %>'></asp:HyperLink> 11 <asp:HyperLink ID="LinkButton2" runat="server" Text='<%# Eval("text") %>'></asp:HyperLink> 12 </div> 13 <div class="accordion-content"> 14 <p>アコーディオン中身</p> 15 </div> 16 </div> 17</asp:Content>
jQuery
1$(function () { 2 $('.accordion-content').hide(); 3 4 $('.accordion-click').click(function () { 5 $(this).next().slideToggle(); 6 }); 7});
補足情報(FW/ツールのバージョンなど)
統合開発環境
Visual Studio2019
(言語:VB.NET、プロジェクトテンプレート:ASP.NET Webアプリケーション)
使用PC
Windows10
その他
外部のAPIを使わない方向で可能でしたら、その方法を教えていただきたく思います。
よろしくお願いいたします。
回答2件
あなたの回答
tips
プレビュー