gpt4 book ai didi

c# - 如何在 ASP.NET Web 控件中管理双向数据绑定(bind)?

转载 作者:太空宇宙 更新时间:2023-11-03 10:50:34 25 4
gpt4 key购买 nike

我有一个关于如何在 ASP.NET 控件(在本例中为转发器控件)中执行双向数据绑定(bind)的问题。该技术是 Web 窗体。我的问题是,回发后我在哪里可以读取用户的数据? (请参阅下面的 MyButton_Click)。

标记:

<asp:Repeater runat="server" ID="MyRepeater">
<ItemTemplate>
<asp:Label runat="server">Name:&nbsp;</asp:Label><asp:TextBox ID="MyTextBox" runat="server" Text='<%#Bind("Name") %>'></asp:TextBox><br/>
</ItemTemplate>
</asp:Repeater>

<asp:Button runat="server" ID="MyButton" Text="Hit me" OnClick="MyButton_Click" />

接口(interface):

interface.jpg

代码隐藏:

protected void Page_Load(object sender, EventArgs e)
{
MyRepeater.DataSource = (
from d in Data.GetData()
select new
{
Name = d
}).ToList();

MyRepeater.DataBind();
}

protected void MyButton_Click(object sender, EventArgs e)
{
// Ok now, where is the user's changed data...?
}

最佳答案

好的,我发现不可能以这种方式进行双向绑定(bind)。我虽然通过两种方式绑定(bind)来自动更新指定的数据源,但这似乎只有在使用数据源 Web 控件(例如 SqlDataSource、XmlDataSource 等)时才有可能。但似乎无法自定义处理的数据。

一个解决方案是遍历转发器项并简单地显式读取控件。所以问题的答案以及如何获取用户的数据是:

protected void MyButton_Click(object sender, EventArgs e)
foreach (RepeaterItem repeaterItem in MyRepeater.Items) {
TextBox myTextBox = (TextBox)repeaterItem.FindControl("MyTextBox");
var usersData = myTextBox.Text; // Here it is!
}
}

关于c# - 如何在 ASP.NET Web 控件中管理双向数据绑定(bind)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21564006/

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