gpt4 book ai didi

c# - 如何获取名称和ID是动态的表单字段的值

转载 作者:太空宇宙 更新时间:2023-11-03 15:51:56 24 4
gpt4 key购买 nike

我是 Sharepoint 2013 和 .NET c# 的新手,所以请放轻松。

我正在编写一个动态生成输入表单的 Web 部件。每个表单可能有不同的字段,因此字段名称/ID 在运行时定义。

这是我生成输入文本的代码。 fieldname 是我这里的变量是输入框的ID,最好是名字。 fieldtitle 是显示名称,fielddefaultvalue 是默认值。此代码部分在一个循环中,每次都将所有输入添加到 PlaceHolder1

TextBox formfield = new TextBox();
formfield.ID = fieldname;
formfield.Text = fielddefaultvalue;
formfield.Attributes.Add("placeholder", fieldtitle);
PlaceHolder1.Controls.Add(formfield);

我的问题是,当我运行它时,我的输入字段的名称和 ID 变成了这样

ctl00$ctl39$g_76a6fb01_d2b4_4087_a988_8b34b95dc136$Email

我尝试使用

获取提交的值

Page.Request.Form["Email"]

但没有成功。我想它也需要所有这些随机字符。

我也可以使用 Email.Text 来获取值,但是 Email 部分是动态的并且来自变量。有没有办法使用变量 fieldname 其中包含 Email 和其他字段名称作为字符串?

如何获取提交的值和/或将干净的名称放入我的输入字段。

请记住,我的字段名称是动态的,并且在 for 循环的每一轮都保存在 fieldname 变量中。

编辑

提交表单后,这是 Page.Request.Form 的调试屏幕。我不知道如何/在哪里可以找到每个输入字段开头的随机/唯一字符串。 flexiforms_xxx部分是实际的文件名。

enter image description here

最佳答案

您可以在添加文本框时将它们缓存在字典中:

Dictionary<string, TextBox> textBoxesByFieldName = new Dictionary<string, TextBox>();

foreach(string fieldName in FieldNames){
TextBox formfield = new TextBox();
formfield.ID = fieldname;
formfield.Text = fielddefaultvalue;
formfield.Attributes.Add("placeholder", fieldtitle);
PlaceHolder1.Controls.Add(formfield);
textBoxesByFieldName.Add(fieldname, formfield);
}

当您需要他们以这种方式访问​​ TextBox 时:

private TextBox GetTextBoxByFieldName(string fieldName){
TextBox textBox;
return textBoxesByFieldName.TryGetValue(fieldName, out textBox) ? textBox : null;
}

[edit] 如果我理解正确,你想提交表单并获取所有输入的文本以用于你的干净字段名称:

void OnSubmitButtonClick(Object sender, EventArgs e)
{
foreach(KeyValuePair<string, TextBox> keyValue in textBoxesByFieldName){
string fieldName = keyValue.Key;
string fieldValue = keyValue.Value.Text;
}
}

[edit2] 以上解决方案需要设置formfield.AutoPostBack=true;

要避免页面刷新,请使用 string fieldValue = Page.Request.Form[((System.Web.UI.Control)(keyValue.Value)).UniqueID];

关于c# - 如何获取名称和ID是动态的表单字段的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25440010/

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