У меня есть проект C#, который имеет динамически созданный textbox
, и когда форма отправляется, код позади должен получить значение textbox
.Элемент управления ASP.NET Специальные символы
id
из textbox
содержит знак на $
доллар и при извлечении value
он говорит empty
.
Удивительно, если $
считается особым символом для ID
или если есть способ справиться с этой проблемой?
// Вот мой пример кода
//Create Form
foreach (DataRow row in setOfColumns.Rows)
{
TextBox txtBox = new TextBox();
txtBox.ID = row["NameOfColumn"] + " textbox"; //Where row["NameOfColumn"] = "Money $"
}
//Display form on browser values
name="ctl00$ContentPlaceHolder1$ctl00$Money $"
id="ContentPlaceHolder1_ctl00_Money $"
value="$3,392"
//Submit Form
DataTable dt = new DataTable();
foreach (Control c in controls)
{
if (c is TextBox)
{
DataRow dr = dt.NewRow();
String txtValueCtrl = ((TextBox)c).Text.ToString(); //txtValueCtrl = "", it returns empty value for the textbox
dr["Value"] = txtValueCtrl;
dt.Rows.Add(dr);
}
}
//Once I remove the '$' from the txtBox.ID it is able to retrieve the value from the textbox
Просьба показать код, который дает нам хотя бы намек на то, как вы это делаете. Например, это элемент управления ASP.NET TextBox? –
Когда форма отправлена, это не атрибут 'id', который используется как ключ в данных формы, а атрибут' name'. Каково имя текстового поля? – Guffa
Возможный дубликат [Доступ к имени клиента клиента, а не идентификатор в ASP.NET] (http://stackoverflow.com/questions/5763557/accessing-control-client-name-and-not-id-in-asp-net) – Aristos