【问题标题】:Repeater ItemCommand does not work on large dataRepeater ItemCommand 不适用于大数据
【发布时间】:2015-12-23 21:25:41
【问题描述】:

我有一个使用转发器显示项目列表的网络表单,并且每个项目都有一个编辑按钮。 通过点击编辑按钮,页面被重定向到编辑页面

HTML

<asp:Repeater ID="r epeaterRequest" runat="server">
    <ItemTemplate>
        <asp:LinkButton ID="btnEdit" CommandArgument='<%# Eval("ItemID") %>' CommandName="Edit" runat="server">Edit</asp:LinkButton>
    </ItemTemplate>
</asp:Repeater>

代码查找

    protected override void OnLoad(EventArgs e)
    {
        base.OnLoad(e);

        if (Page.IsPostBack == false)
        {
            List<MyItem> data = new repository().getData();
            repeater.DataSource = data;
            repeater.DataBind();
        }
    }

 private void repeater_ItemCommand(object source, RepeaterCommandEventArgs e)
 {
     int itemId;
     if (int.TryParse(e.CommandArgument.ToString(), out itemId))
     {
         if (e.CommandName == "Edit")
         {
             Response.Redirect("~/Edit.aspx?id=" + itemId, false);
         }
     }
}

问题是,当列表项的数量变得像List 中的2800 个项目时,它会在单击Edit 按钮后停止。 ItemCommand 不会被调用或花费太长时间才能到达 ItemCommand 函数。 (加载和渲染数据很快。当点击Edit按钮时它会停止。

当像 1000 这样的项目较少时,一切都很好。

我尝试将此&lt;httpRuntime maxRequestLength="102400" executionTimeout="300" /&gt; 添加到Web.Config,但没有成功。

【问题讨论】:

    标签: asp.net webforms repeater


    【解决方案1】:

    您是否尝试向中继器添加一些简单的寻呼功能。一次将大量数据加载到 DOM 中。见this 的想法。

    【讨论】:

    • 我想过,但是加载和渲染数据没有问题,所以我还没有尝试过。我最初使用UpdatePanel 和一个搜索文本框,以便在用户键入搜索字符串时缩小列表范围,但将其删除以查看它是否能解决问题。如果这里的问题只是数据的大小,我也可以使用分页并提供搜索选项。
    • 我在返回 .pdf 文件时遇到了同样的问题,起初它很好,但一旦有超过 1200 件物品被退回,疯狂的事情就发生了。我对其进行了修改以使用分页,并且它再次运行良好。并且页面加载速度也更快。
    【解决方案2】:

    你为什么不把你的 LinkBut​​ton 改成简单的超链接?

    <asp:Repeater ID="r epeaterRequest" runat="server">
        <ItemTemplate>
            <a href='<%# Eval("href") %>'>Edit</a>
        </ItemTemplate>
    </asp:Repeater>
    

    我认为在您的情况下这是更好的解决方案。 Caz' 你也在做同样的事情,但使用了另一种方式。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多