我有一些 id 的 web 表单。我也有这些名字的数组。并在提交时我需要通过名称数组检索所有这些值。就像是:
Request.Form["<some_name>"]
ASP 用 ctl00$MainContent$ 替换名称的问题
您可以将其设置ClientIDMode
为静态,并且您的所有控件 ID 将与呈现时保持相同。
这将允许您通过他们的实际 ID 来获取它们。
通过添加以下内容在页面中进行设置...
<%@ Page ClientIDMode="Static" ...
http://msdn.microsoft.com/en-us/library/system.web.ui.control.clientidmode.aspx
嘿,你也可以试试这个。
private void ChangeBtn_Click(object sender, EventArgs e)
{
foreach(Control c in Page.Controls)
{
if (c.Controls.Count > 0)
{
foreach(Control c2 in c.Controls)
{
if (c2.GetType().ToString() == "System.Web.UI.WebControls.TextBox")
{
myspan.InnerHtml = ((TextBox)c2).Text;
((TextBox)c2).Text = "";
}
}
}
}
希望对你有帮助
没有找到任何正常的解决方案。出于我的目的,通常使用:
private string GetFieldValue(string fieldName)
{
return Request.Form.Cast<string>()
.Where(key => key.EndsWith(fieldName))
.ToDictionary(key => key, key => Request.Form[key])
.Values.FirstOrDefault();
}
你也可以做一些这样的事情。
var item = from key in Request.Form.AllKeys
where key.Contains(fieldname)
select Request.Form[key];