【发布时间】:2011-07-24 13:44:37
【问题描述】:
在Page_Load,我正在使用 EF4 绑定中继器。转发器包含一些在开始时填充但用户可以编辑的文本框。如何在以后的回发中阅读这些文本框?
page.aspx(摘录):
<asp:Repeater ID="repOrders" runat="server">
<ItemTemplate>
<p>
<%# Eval("Id") %> -
<asp:TextBox ID="txtName" Text='<%# Eval("Name") %>' runat="server">
</asp:TextBox>
</p>
</ItemTemplate>
</asp:Repeater>
page.aspx.cs(摘录):
protected void Page_Load(object sender, EventArgs e) {
using (var ctx = new Ctx()) {
var ds = ctx.Orders;
repOrders.DataSource = ds;
repOrders.DataBind();
}
}
protected void lnkCheck_Click(object sender, EventArgs e) {
Response.Write(((TextBox)repOrders.Items[0].FindControl("txtName")).Text);
}
问题是,当我单击lnkCheck 时,Repeater 首先从数据库中重新填充,因此用户对文本框所做的任何更改都会丢失。
如果我将if (IsPostBack) return; 放入Page_Load,那么中继器是空的。
我该如何解决这个问题?
【问题讨论】:
标签: asp.net entity-framework data-binding repeater