1

タブリンクのソースを表示してデータバインドするリピーターがあります。コードは次のとおりです。

protected void rptTab_ItemBound(Object sender, RepeaterItemEventArgs e)
{
    if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
    {
        Item i = e.Item.DataItem as Item;
        Link hlTabLink = e.Item.FindControl("hlTabLink") as Link;
        hlTabLink.Target = Sitecore.Links.LinkManager.GetItemUrl(i);
        hlTabLink.DataSource = i.Paths.FullPath;
        hlTabLink.Field = "Title";
    }
}

これが私のマークアップです:

<asp:Repeater ID="rptTab" runat="server" OnItemDataBound="rptTab_ItemBound">
            <ItemTemplate>
                <li id= "liTabTest" runat = "server">
                    <a>
                        <sc:Link ID = "hlTabLink" Field = "scTabLink" onclick = "TabClick()" runat ="server"></sc:Link>
                    </a>
                </li>
            </ItemTemplate>
       </asp:Repeater>

これは、選択された項目に基づいて動的に CSS クラスを追加する jQuery です。

$(document).ready(function () {
    init();
});

function init() {
    $("ul#Tab-labels li").removeClass("tab-label TabbedPanelsTabSelected");
    $("ul#Tab-labels li:first").addClass("tab-label TabbedPanelsTabSelected");
};

function TabClick() {
    alert('test');
};

タブのインデックスに基づいて CSS ファイルを表示していることがわかります。また、その jQuery にクリック イベントを追加する必要があります。したがって、基本的に私が混乱している2つのことがあります。

  • jQueryのクリックイベントが呼び出されません:(
  • jQueryから、クリックイベントでどのページを通過する必要があるかを知る必要がありますか? 私はコードビハインドから取得する必要がありますか?隠しフィールドのように、そこにタブ ページを格納し、jQuery からフェッチします。

これをどのように解決すればよいですか?助けてください!

4

1 に答える 1

1

の場合sc:Link、bind メソッドをonClientClickforに変更しonclick = "TabClick()"ます。OnClickは、ポストバック サーバー メソッド用です。

ところで、scプレフィックスは何ですか? ページに追加するユーザー コントロールはありますか?

于 2012-07-23T21:33:13.407 に答える