从动态添加的文本框中获取值asp.net c#
发布时间:2020-12-15 22:35:03 所属栏目:asp.Net 来源:网络整理
导读:正如我所拥有的标题所示,我可以在其中插入我想要添加到占位符的文本框的数量.我可以添加文本框就好了问题是我无法在动态添加的文本框中插入值.这是我的代码 这段代码的目的是每当我可以在其中引入我想要的文本框数量的文本框.它会创建并将它们添加到我页面中
正如我所拥有的标题所示,我可以在其中插入我想要添加到占位符的文本框的数量.我可以添加文本框就好了问题是我无法在动态添加的文本框中插入值.这是我的代码
这段代码的目的是每当我可以在其中引入我想要的文本框数量的文本框.它会创建并将它们添加到我页面中的占位符中. public void txtExtra_TextChanged(object sender,EventArgs e) { for (a = 1; a <= int.Parse(txtExtra.Text); a++) { TextBox txt = new TextBox(); txt.ID = "txtquestion" + a; pholder.Controls.Add(txt); } } 这是将提交和响应的按钮的代码.写入插入所有这些文本框中的值. protected void btnConfirm_Click(object sender,EventArgs e) { foreach (Control ctr in pholder.Controls) { if (ctr is TextBox) { string value = ((TextBox)ctr).Text; Response.Write(value); } } } 我一直在网上搜索,我一直在得到这个代码很好的答案,它应该工作,但它没有.如果你们看到任何错误或有任何可以解决我的问题的建议,我真的很感激 解决方法
你快到了.
问题 您需要在回发时重新加载那些动态创建的文本框.否则,它们将变为null,您将无法找到它. 为此,您需要将动态TextBoxes ID保存在持久位置,例如View State或Session State. 屏幕截图 ASPX Number of TextBoxes: <asp:TextBox runat="server" ID="CounterTextBox" OnTextChanged="CounterTextBox_TextChanged" AutoPostBack="True" /><br/> <asp:PlaceHolder runat="server" ID="TextBoxPlaceHolder" /><br/> <asp:Button runat="server" ID="ConfirmButton" Text="Confirm" OnClick="ConfirmButton_Click" /><br/> Result: <asp:Literal runat="server" ID="ResultLiteral"/> 代码背后 private List<string> TextBoxIdCollection { get { var collection = ViewState["TextBoxIdCollection"] as List<string>; return collection ?? new List<string>(); } set { ViewState["TextBoxIdCollection"] = value; } } protected void Page_Load(object sender,EventArgs e) { foreach (string textboxId in TextBoxIdCollection) { var textbox = new TextBox {ID = textboxId}; TextBoxPlaceHolder.Controls.Add(textbox); } } protected void CounterTextBox_TextChanged(object sender,EventArgs e) { var collection = new List<string>(); int total; if (Int32.TryParse(CounterTextBox.Text,out total)) { for (int i = 1; i <= total; i++) { var textbox = new TextBox { ID = "QuestionTextBox" + i }; // Collect this textbox id collection.Add(textbox.ID); TextBoxPlaceHolder.Controls.Add(textbox); } TextBoxIdCollection= collection; } } protected void ConfirmButton_Click(object sender,EventArgs e) { foreach (Control ctr in TextBoxPlaceHolder.Controls) { if (ctr is TextBox) { string value = ((TextBox)ctr).Text; ResultLiteral.Text += value; } } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc – ASP.net MVC返回文件和重定向
- ASP.NET – 主页面中的更新面板,内容页面中的刷新按钮
- asp.net会员 – 删除asp.net会员和角色提供者
- asp.net – 如何让Google不会将自定义404错误页面编入索引?
- asp.net-mvc – ReadOnly(true)是否与Html.EditorForModel一
- asp.net-mvc – Sammy.js和Knockout.js =>模板没有模板?
- .net – 如何保持验证DRY?
- asp.net-mvc – asp.net mvc路由:如何使用默认动作,但非默
- asp.net-mvc – 在ASP.NET MVC组织帐户中访问Azure AD Grap
- Windows7下VS2008试用版到期的解决办法
推荐文章
站长推荐
热点阅读