gpt4 book ai didi

c# - 从动态创建的文本框加载值,ASPx

转载 作者:行者123 更新时间:2023-11-30 18:45:46 24 4
gpt4 key购买 nike

在我的 aspx 上我有

 <div id ="div1" runat="server"></div>
<div id ="div2" runat="server"></div>

等等

后面的代码会像这样在这些除数中创建文本框

protected void Page_Load(object sender, EventArgs e){
for (int i = 1; i < 11; i++)
{
Control ctrl = FindControlRecursive(Page, string.Format("div{0}", i));
System.Web.UI.HtmlControls.HtmlGenericControl ctrl2 = (System.Web.UI.HtmlControls.HtmlGenericControl)ctrl;
TextBox tbt = new TextBox();
tbt.Attributes.Add("placeholder", "Title");
tbt.ID = string.Format("page{0}", i);
ctrl2.Controls.Add(tbt);
ctrl2.Controls.Add(new LiteralControl(" "));
TextBox tbu = new TextBox();
tbu.Attributes.Add("placeholder", "URL");
tbu.ID = string.Format("page{0}url", i);
ctrl2.Controls.Add(tbu);

等等。

我的问题是:如何在用户点击提交按钮后从这些文本框中检索文本?

我在 stackoverflow 上到处冲浪,但我还没有找到解决方案。

我对以下代码进行了一些修改(基于一些 stackoverflow 主题):

 protected string GetTextBoxValues(object sender, EventArgs e)
{
string message = "";
foreach (TextBox textBox in Controls.OfType<TextBox>())
{
message += textBox.ID + ": " + textBox.Text + "\\n";
}
return message;
}

然后在submit_click中打印出值:

Response.Write(GetTextBoxValues(sender, e));

但这并没有给我任何东西

基本上,我想从每个 div(包含大约 6 个文本框)中读取所有值,用分号分隔,以便我可以进一步操作数据

最佳答案

Controls.OfType<TextBox>是一种很好的方法,但它不是递归的。它将查看页面顶部的文本框。您已将它们添加到具有“有意义”名称的子容器中 div1div2 ,所以使用这个:

var allTextBoxes = div1.Controls.OfType<TextBox>().Concat(div2.Controls.OfType<TextBox>());
foreach (TextBox textBox in allTextBoxes)
{
message += textBox.ID + ": " + textBox.Text + "\\n";
}

您可以改用递归方法,但我强烈建议不要这样做。您可能会发现不想包含的文本框。

请注意,您必须在 Page_Init 中创建动态控件以及每次回传。

关于c# - 从动态创建的文本框加载值,ASPx,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37813789/

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