是否可以在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');
}
它会简要地更新课程,但在回发完成后会立即丢失。任何有任何其他建议的人都非常感谢。
答案 0 :(得分:1)
这是最终奏效的(对于任何可能发现他们需要这个的人)。我在页面中添加了一个asp:HiddenField:
<asp:HiddenField ID="SelectedItem" runat="server" />
在代码隐藏中的_ItemCommand中,我将隐藏字段的值设置为所选链接的ID:
protected void listItem_ItemCommand(Object source, RepeaterCommandEventArgs e)
{
SelectedItem.Value = e.CommandArgument.ToString();
将以下内容添加到document.ready函数:
var selectedItem= $("[id*=SelectedItem]").val();
$('#' + selectedItem).addClass('selected');
我真的希望这有助于其他人,因为经过大量的互联网搜索,我找不到答案。再次感谢@Laslos,没有你就不可能做到!
答案 1 :(得分:0)
您应该能够在不需要隐藏字段的情况下简化此操作。
类似的东西:
<强> 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类。
注意可能需要进行一些调试,这是未经测试的,并且不在我的掌控之中。