ASP.Net 中继器项目命令没有被触发

标签 asp.net repeater itemcommand

好的,我已经使用中继器数百次没有问题,但今天出了点问题。我有一个转发器,并且我正在订阅 itemCommand 事件,但是当我的命令运行时,页面会发回,但不会触发该事件。

为了解决这个问题,我必须在每次回发时进行数据绑定(bind)。

我的中继器看起来像这样:

<asp:Repeater id="MyRepeater" runat="server" onitemcommand="MyRepeater_ItemCommand">
<ItemTemplate>
    <li>
    <asp:Label id="Label" runat="server" />
    <asp:LinkButton id="LinkButton1" runat="server" commandname="Complete" commandargument='<%# Eval("MyID") %>' text='<%# Eval("Title") %>' />
    </li>
</ItemTemplate>
</asp:Repeater>

我的代码隐藏是这样的:
protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
    SetupPage();
    }
}

private void SetupPage()
{
    // Do other stuff

    MyRepeater.DataSource = Repository.GetStuff()
    MyRepeater.DataBind();
}


protected void MyRepeater_ItemCommand(object sender, RepeaterCommandEventArgs e)
{


// Do all my stuff here
}

除非我注释掉 if (!IsPostBack) 行,否则不会调用 MyRepeater_ItemCommand。一旦将其注释掉并且中继器在每次回发时都获得数据绑定(bind),它就可以正常工作。我已经在许多其他页面中完成了此操作,但在此页面上似乎不起作用。

还有其他人遇到这种行为或有解决方案吗?

最佳答案

我删除了 PostBackUrl linkbutton 和 ItemCommand 中的属性被触发。我认为回发首先运行。

关于ASP.Net 中继器项目命令没有被触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1321944/

相关文章:

asp.net - ASP.Net WebAPI 中的自定义路由处理程序

三层架构中的 ASP.Net session 存储提供程序

c# - 如何从方法内部调用 javascript 函数?

asp.net - 嵌套中继器错误: Object reference not set to an instance of an object

asp.net - asp.net 中图像转发器控件的 css 模板

c# - 使用中继器控件不会触发 ItemCommand 事件

c# - 如果 Pages = 1,则隐藏 DataPager

c# - 在 Repeater 中获取动态控件和文本

c# - Repeater 中的按钮不会触发 ItemCommand

c# - 我如何在我的 ASP.NET 应用程序中为我的 ListView 使用 ItemCommand 事件