如何在代码后面的占位符中获取文本框值?
我创建了一些文本框,我希望动态获取它们的值。 简而言之,ı解释我的页面:
我有dropDown列表的编号为1到15.当用户选择编号时,我创建了文本框作为选中的编号。 例如; 用户选择3,我创建3个文本框,用户在文本框中写入内容。 这是我的代码:aspx Side:
代码背后:
protected void ddlUserSelected_SelectedIndexChanged(object sender, EventArgs e) { for (int a = 1; a <= int.Parse(ddlUserSelected.SelectedItem.Text); a++) { TextBox txtDate = new TextBox(); Label lbl = new Label(); lbl.Text = "
"; txtDate .Width = 70; txtDate .CssClass = "tbl"; txtDate .ID = "txtDate" + a; PlaceHolder1.Controls.Add(txtDate); PlaceHolder1.Controls.Add(lbl); } }
而且我还有保存按钮。
protected void btnSave_Click(object sender, EventArgs e) { for (int a = 1; a <= int.Parse(ddlUserSelected.SelectedItem.Text); a++) { //I want to get each textbox value } }
注意:for循环无所谓(可以删除)我的主要目的是获取文本框值。
如何在btnSave_Click
方法中获取文本框值?
下面的代码将帮助您
protected void ddlUserSelected_SelectedIndexChanged(object sender, EventArgs e) { for (int a = 1; a <= int.Parse(ddlUserSelected.SelectedItem.Text); a++) { TextBox txtDate = new TextBox(); Label lbl = new Label(); lbl.Text = "
"; txtDate.Width = 70; txtDate.CssClass = "tbl"; txtDate.ID = "txtDate" + a; PlaceHolder1.Controls.Add(txtDate); PlaceHolder1.Controls.Add(lbl); } } protected void btnSave_Click(object sender, EventArgs e) { for (int a = 1; a <= int.Parse(ddlUserSelected.SelectedItem.Text); a++) { if(Request.Form.Get("txtDate" + a.ToString()) != null) { var str = Request.Form.Get("txtDate" + a.ToString()); } } }
如果您使用母版页,则使用下面的代码
if (Request.Form.Get("ctl00$ContentPlaceHolder1$txtDate" + a.ToString()) != null) { var str = Request.Form.Get("ctl00$ContentPlaceHolder1$txtDate" + a.ToString()); }
protected void btnSave_Click(object sender, EventArgs e) { for (int a = 1; a <= int.Parse(ddlUserSelected.SelectedItem.Text); a++) { string value = Request.Form["txtDate" + a]; } }
问题
如果动态地向页面添加控件,则需要在Page Init或Page Load上重新加载它们。
否则,当您回发时,您将无法找到它们。
ASPX
代码背后
private int Total { get { int total; if (Int32.TryParse(ddlUserSelected.SelectedItem.Text, out total)) return total; return 0; } } protected void Page_Load(object sender, EventArgs e) { CreateTextBoxes(Total); } protected void ddlUserSelected_SelectedIndexChanged(object sender, EventArgs e) { CreateTextBoxes(Total); } protected void btnSave_Click(object sender, EventArgs e) { int total = Total; for (int a = 1; a <= total; a++) { var textbox = PlaceHolder1.FindControl("txtDate" + a) as TextBox; } } private void CreateTextBoxes(int total) { for (int a = 1; a <= total; a++) { // Make sure we do not add same ID again if (PlaceHolder1.FindControl("txtDate" + a) == null) { TextBox txtDate = new TextBox(); Label lbl = new Label(); lbl.Text = "
"; txtDate.Width = 70; txtDate.CssClass = "tbl"; txtDate.ID = "txtDate" + a; PlaceHolder1.Controls.Add(txtDate); PlaceHolder1.Controls.Add(lbl); } } }
- 数据集Designer.cs在VS2013中从SVN获取更新后生成Designer1.cs
- MVC路由不适用于虚拟目录上的非默认/根操作控制器
- System.FormatException:将字符串转换为十进制时,输入字符串的格式不正确。
- 如何将ASP.NET MVC应用程序读取权限授予注册表项?
- asp5 IConfigurationRoot获取json数组
- 在Web API中使用ExceptionFilterAttribute
- 使用带有c#和ASP.net的openXML在powerpoint中创建动态表
- 当控制器类在不同的程序集中时,如何将Controller注册到ASP.NET MVC中?
- 使用HtmlAgilityPack解析dl