【问题标题】:Delete Row from asp:Repeater with Button从 asp 中删除行:Repeater with Button
【发布时间】:2015-06-23 15:33:03
【问题描述】:

我的第一个与作业无关的问题,feelgood.jpg

带有 RavenDB 的 asp C# 项目

我正在尝试使用行末尾的此按钮从转发器中删除行:

<asp:Button ID="Delete" runat="server" Text="Delete" class="btn btn-danger" CommandName="Delete" CommandArgument='<%# Eval("PartNumber") %>'/>

在其背后使用此代码。我在 if 语句上放了一个断点,它从来没有命中它,就像它根本没有进入这个函数一样。

 protected void repProducts_ItemCommand(object source, RepeaterCommandEventArgs e)
    {
        if (e.CommandName == "Delete") //breakpoint on this line
        {
            int partNum = Convert.ToInt32(e.CommandArgument);

            session.Delete(partNum); 
            session.SaveChanges();
        }
    }

我检查了控制台,那里没有任何错误,只是警告;

主线程上的同步 XMLHttpRequest 已弃用 不推荐为同步请求设置“XMLHttpRequest.withCredentials”。

我不知道这些是否有用。有谁知道为什么我的回帖似乎从来没有达到这个功能?

【问题讨论】:

  • 尝试在客户端隐藏/删除元素?
  • 您的中继器是否知道该事件(即OnItemCommand="repProducts_ItemCommand")?
  • 确实,我找到了答案,见下文。

标签: c# asp.net callback datarepeater


【解决方案1】:

我发现了问题,我忘了用“if(!isPostBack)”包装数据绑定

protected void Page_Load(object sender, EventArgs e)
    {
        List<Product> prods = session.Query<Product>().ToList();

        if(!IsPostBack)
        {
            repProducts.DataSource = prods;
            repProducts.DataBind();
        }
    }

【讨论】:

  • 我们大多数人一开始就犯的经典错误。
猜你喜欢
  • 2012-11-16
  • 1970-01-01
  • 2015-02-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-03
  • 2013-11-24
  • 2016-01-11
相关资源
最近更新 更多