gpt4 book ai didi

c# - 回发后的 asp.net 转发器数据

转载 作者:行者123 更新时间:2023-11-30 12:14:16 27 4
gpt4 key购买 nike

在我的 .ascx 控件中:

<asp:Repeater ID="rptProducts" runat="server">
<ItemTemplate>
<asp:Label ID="lblProductName" runat="server">
<%# Eval("Name") %>
</asp:Label>
</ItemTemplate>
</asp:Repeater>

<asp:Button ID="btnGo" runat="server" Text="Postback" onclick="btnGo_Click" />

在代码隐藏中:

protected void Page_Load(object sender, EventArgs e)
{
if(!this.IsPostBack){
var products = (from p in context.Products
select p).Take(30);

rptProducts.DataSource = products;
rptProducts.DataBind();
}
}

我想知道为什么我的转发器在我点击那个按钮后丢失了它的数据。(回发)

最佳答案

改为在 OnInit 中绑定(bind) Repeater

http://codinglifestyle.wordpress.com/2009/10/08/repeaters-and-lost-data-after-postback-viewstate/

编辑:我假设您正在处理UserControlLoad 事件,该事件在之后 引发PageLoad 事件。最迟必须在 Page_Load 中创建动态控件。

http://forums.asp.net/t/1191194.aspx

所以要么在 Page_Init 中绑定(bind)你的 Repeater,要么 - 我会推荐的:

提供一个公共(public)函数,如 BindData,可以从页面的加载事件中调用。这也是推荐的方式,因为页面是 UserControl 的 Controller 。

public void BindData()
{
var products = (from p in context.Products
select p).Take(30);

rptProducts.DataSource = products;
rptProducts.DataBind();
}

关于c# - 回发后的 asp.net 转发器数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9914446/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com