管理选项卡通过jQuery和Repeater单击事件

时间:2012-07-21 14:38:46

标签: c# asp.net c#-4.0 repeater

我有一个转发器,它显示和数据绑定标签链接的来源。这是代码:

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>

这是jQuery,它根据选择的项目动态添加CSS类:

$(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中添加click事件。所以基本上有两件事我很困惑:

  • 我在jQuery中的click事件没有被调用:(
  • 从jQuery我必须在click事件中知道它有哪个页面 经历?所以我必须从代​​码隐藏或什么?像一个 隐藏字段并将标签页存储在其中,然后从中取出 jQuery的。

我该如何解决这个问题?请帮忙!

1 个答案:

答案 0 :(得分:1)

对于sc:Link,将绑定方法更改为onClientClick onclick = "TabClick()"OnClick用于回发服务器方法。

BTW,sc前缀是什么?是否有要添加到页面的用户控件?