gpt4 book ai didi

asp.net - 从中继器中检索 TextBox 值

转载 作者:行者123 更新时间:2023-12-01 05:39:06 26 4
gpt4 key购买 nike

Page_Load ,我正在使用 EF4 绑定(bind)中继器。转发器包含一些在开始时填充但用户可以编辑的文本框。如何在以后的回发中阅读这些文本框?

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那么中继器是空的。

我怎样才能解决这个问题?

最佳答案

如果不是回发,则仅填充转发器。只要为转发器启用了 View 状态,您的数据就会被保留。

 protected void Page_Load(object sender, EventArgs e) {

if(!IsPostBack)
{
using (var ctx = new Ctx()) {
var ds = ctx.Orders;
repOrders.DataSource = ds;
repOrders.DataBind();
}
}

}

您如何提高“稍后回发”以从转发器读取文本值?通常的偏好是从转发器中引发 itemcommand,然后使用 find 控件获取项目模板中文本框的值。

关于asp.net - 从中继器中检索 TextBox 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6807125/

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