1

我有一些 id 的 web 表单。我也有这些名字的数组。并在提交时我需要通过名称数组检索所有这些值。就像是:

Request.Form["<some_name>"]

ASP 用 ctl00$MainContent$ 替换名称的问题

4

4 回答 4

2

您可以将其设置ClientIDMode为静态,并且您的所有控件 ID 将与呈现时保持相同。

这将允许您通过他们的实际 ID 来获取它们。

通过添加以下内容在页面中进行设置...

<%@ Page ClientIDMode="Static" ...

http://msdn.microsoft.com/en-us/library/system.web.ui.control.clientidmode.aspx

于 2013-07-11T11:12:50.267 回答
0

嘿,你也可以试试这个。

 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 = "";
        }
     }
  }
 }

希望对你有帮助

于 2013-07-11T11:16:49.923 回答
0

没有找到任何正常的解决方案。出于我的目的,通常使用:

private string GetFieldValue(string fieldName)
{
    return Request.Form.Cast<string>()
        .Where(key => key.EndsWith(fieldName))
        .ToDictionary(key => key, key => Request.Form[key])
        .Values.FirstOrDefault();
}
于 2013-07-11T13:10:34.193 回答
0

你也可以做一些这样的事情。

   var item = from key in Request.Form.AllKeys
                               where key.Contains(fieldname)
                               select Request.Form[key];
于 2013-07-11T13:19:41.047 回答