我有一个webform,它显示了一个使用转发器的项目列表,并且每个项目都有一个Edit按钮。 通过单击“编辑”按钮,页面将重定向到“编辑”页面
<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件物品较少时,一切都还可以。
我已尝试将此<httpRuntime maxRequestLength="102400" executionTimeout="300" />
添加到Web.Config
,但无效。
答案 0 :(得分:0)
您是否尝试向转发器添加一些简单的分页。这是一次加载到DOM中的大量数据。请参阅this了解相关信息。
答案 1 :(得分:0)
为什么不将LinkButton更改为简单的超链接?
<asp:Repeater ID="r epeaterRequest" runat="server">
<ItemTemplate>
<a href='<%# Eval("href") %>'>Edit</a>
</ItemTemplate>
</asp:Repeater>
我认为在您的情况下这是更好的解决方案。 Caz'你也是这样做的,但是用另一种方式。