是否可以在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 可能需要进行一些调试,这是未经测试的,并且在我的头顶上都没有。