【问题标题】:Repeater does not fire ItemCommand中继器不触发 ItemCommand
【发布时间】:2016-12-25 21:54:51
【问题描述】:

我已经阅读了类似的问题和我的问题的答案,并且我已经完成了建议,但我的问题仍未解决 PLZ 不要将我的问题标记为重复。

我有一个包含标签的中继器。我希望当用户单击此链接时,repeater fire 的 itemcommend。我已经为转发器设置了 itemcommand,但它不会触发。我的页面视图状态为真,我的转发器只绑定一次。 这是我的 ASP 代码:

<asp:Repeater ID="Rep" runat="server" onitemcommand="Repeater1_ItemCommand"  EnableViewState="true">
    <ItemTemplate>
        <a  id="linkq" commandname="link" runat="server" href='<%# Eval("url") %>'  > <%# Eval("title") %> </a> 
        <%# Eval("url")%> </span>
        <%# Eval("description")%> </span>
    </ItemTemplate>
</asp:Repeater>

这是我的 C# 代码:

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        // I Bind  Repeater here
    }
}

protected void Repeater1_ItemCommand(object source, RepeaterCommandEventArgs e)
{
    if (e.CommandName == "link")
    {
    }
}

【问题讨论】:

  • 您应该检查是否区分大小写。它被称为OnItemCommandCommandName
  • 大小写在这里无关紧要,它适用于onitemcommandcommandname

标签: c# html asp.net repeater itemcommand


【解决方案1】:

在这种情况下,我通常使用LinkButton 而不是&lt;a&gt; 标签。

&lt;asp:LinkButton ID="linkq" CommandName="link" runat="server"&gt; &lt;%# Eval("title") %&gt; &lt;/asp:LinkButton&gt;

【讨论】:

  • TNX 。但我以前做过,没有任何改变
  • 你第一次尝试时有href 属性吗?这也可能把事情搞砸了。
  • @Mary,你期待发生什么?因为 bpechkis 的答案有效。
  • @bpechkis 是的,我有 href
  • 如果您只想重定向到一个 URL,那么我会回到您原来的 &lt;a&gt; 标签并从转发器中删除 OnItemCommand 并从 a 标签中删除 CommandName。除非您需要执行一些其他更复杂的逻辑,否则没有理由再次点击代码隐藏
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多