我在Repeater中有一个linkbutton,它需要在单击时触发代码隐藏中的方法,但是当单击LinkButton时该方法永远不会执行。以下是Repeater的HTML:
<asp:Repeater ID="rptFeatures" runat="server">
<ItemTemplate>
<asp:LinkButton runat="server" Text='<%# Eval("Name") %>'
CommandName="listItem_Click"
CommandArgument='<%# DataBinder.Eval(Container.DataItem, "AccessListItemId") %>'>
</asp:LinkButton><br />
</ItemTemplate>
</asp:Repeater>
以下是需要触发onClick的方法:
protected void listItem_Click(object sender, RepeaterCommandEventArgs e)
{
throw new NotImplementedException();
}
该方法永远不会被调用,因为我在NotEmplementedException上有一个断点,只是为了看它是否命中。有人可以告诉我这里我做错了吗?
非常感谢任何帮助!
答案 0 :(得分:2)
试试这个:
<asp:Repeater ID="rptFeatures" runat="server" OnItemCommand="rptFeatures_OnItemCommand">
<ItemTemplate>
<asp:LinkButton runat="server" Text='<%# Eval("Name") %>'
CommandName="listClick"
CommandArgument='<%# DataBinder.Eval(Container.DataItem, "AccessListItemId") %>'>
</asp:LinkButton><br />
</ItemTemplate>
</asp:Repeater>
protected void rptFeatures_OnItemCommand(object source, RepeaterCommandEventArgs e)
{
if (e.CommandName.Equals("listItem_Click"))
{
// your code
}
}
答案 1 :(得分:1)
而不是CommandName使用onClick事件。
的OnClick = “listItem_Click”
答案 2 :(得分:0)
我需要将“OnItemCommand = listItem_ItemCommand”添加到Repeater到Baseer Haider的答案。转发器现在看起来像这样:
<asp:Repeater ID="rptFeatures" runat="server" OnItemCommand="listItem_ItemCommand">
<ItemTemplate>
<asp:LinkButton runat="server" Text='<%# Eval("Name") %>' CommandName="listClick" CommandArgument='<%# DataBinder.Eval(Container.DataItem, "AccessListItemId") %>'></asp:LinkButton><br />
</ItemTemplate>
</asp:Repeater>
现在它使用包含的参数命中方法:
protected void listItem_ItemCommand (Object source, RepeaterCommandEventArgs e)
{
if (e.CommandName.Equals("listItem_Click"))
{
// your code
}
}