添加CSS以在ASP:中继器中显示所选项目



是否可以在ASP:Repeater中将CSS添加到所选项目?我试图使所选的项目大胆。我尝试使用OnClientClick,但无法正常工作。

这是我的ASP:Repeater LinkButton代码:

                        <asp:Repeater ID="rptFeatures" runat="server" OnItemCommand="listItem_ItemCommand">
                        <ItemTemplate>
                            <asp:LinkButton runat="server" Text='<%# Eval("Name") %>' CommandName="getFeatures"  CommandArgument='<%# DataBinder.Eval(Container.DataItem, "AccessListItemId") %>'></asp:LinkButton><br />
                        </ItemTemplate>
                    </asp:Repeater>

更新:使用Laslos的建议(谢谢),我更新了我的模板:

                        <asp:Repeater ID="rptFeatures" runat="server" OnItemCommand="listItem_ItemCommand">
                        <ItemTemplate>
                            <div id="<%# DataBinder.Eval(Container.DataItem, "AccessListItemId") %>"  onclick="javascript:addClass('<%# DataBinder.Eval(Container.DataItem, "AccessListItemId") %>')">
                                <asp:LinkButton runat="server" Text='<%# Eval("Name") %>' CommandName="getFeatures"  CommandArgument='<%# DataBinder.Eval(Container.DataItem, "AccessListItemId") %>'></asp:LinkButton><br />
                            </div>
                        </ItemTemplate>
                    </asp:Repeater>

和添加功能:

        function addClass(control) {
        $('#' + control).addClass('selected');
    }

它会简要更新课程,但一旦完成后就丢失了。对任何其他建议的人都非常感谢。

这是最终起作用的(对于可能发现需要此需要的任何人)。我在页面上添加了一个ASP:HiddenField:

  <asp:HiddenField ID="SelectedItem" runat="server" />

在代码范围内的_itemCommand中,我将隐藏字段的值设置为所选链接的ID:

        protected void listItem_ItemCommand(Object source, RepeaterCommandEventArgs e)
    {
        SelectedItem.Value = e.CommandArgument.ToString();

将以下内容添加到文档中。dready功能:

            var selectedItem= $("[id*=SelectedItem]").val();
        $('#' + selectedItem).addClass('selected');

我真的希望这对别人有帮助,因为在搜索了很多互联网之后,我找不到答案。再次感谢@laslos,没有您就无法做到!

您应该能够简化这一点而无需隐藏字段。

类似:

aspx

<asp:Repeater ID="rptFeatures" runat="server" OnItemCommand="listItem_ItemCommand">
   <ItemTemplate>
      <asp:LinkButton runat="server" Text='<%# Eval("Name") %>' CommandName="getFeatures"  CommandArgument='<%# DataBinder.Eval(Container.DataItem, "AccessListItemId") %>'></asp:LinkButton><br />
   </ItemTemplate>
</asp:Repeater>

c#

protected void listItem_ItemCommand(Object source, RepeaterCommandEventArgs e)
{
    string exisitingClass = ((LinkButton)source).CssClass + " ";
    ((LinkButton)source).CssClass = exisitingClass.Trim() + "selected";
}

现在您要做的就是创建CSS类。

NOTE 可能需要进行一些调试,这是未经测试的,并且在我的头顶上都没有。

最新更新