我想动态添加文本框并将这些值保存到asp.net中的数据库,在asp.net中是否有任何控件?
如何在asp.net中执行此操作?
答案 0 :(得分:4)
在下面的.aspx文件中添加动态控件是示例代码。
在.aspx文件中添加以下div,其id为addControl
<div id="addControl" runat="server">
</div>
您可以通过在.cs文件中添加以下代码来创建动态TextBox控件。 Add Control是上面定义div的id。
TextBox txt1 = new TextBox();
txt1.ID = "txtOne";
txt1.Text = "";
txt1.CssClass = "myClass";
txt1.ClientIDMode = System.Web.UI.ClientIDMode.Static;
addControl.Controls.Add(txt1);
在NameValueCollection的帮助下,您可以获得TextBox的值。
NameValueCollection frmCollection = Request.Form;
string inputString = frmCollection["txtOne"];
NameValueCollection表示关联的String键的集合 和字符串值,可以使用键或使用 索引。
答案 1 :(得分:2)
您可以使用面板创建动态文本框。 Panel pnlTextBox;
protected void Page_PreInit(object sender, EventArgs e)
{
//Create a Dynamic Panel
pnlTextBox = new Panel();
pnlTextBox.ID = "pnlTextBox";
pnlTextBox.BorderWidth = 1;
pnlTextBox.Width = 300;
this.form1.Controls.Add(pnlTextBox);
//Create a LinkDynamic Button to Add TextBoxes
LinkButton btnAddtxt = new LinkButton();
btnAddtxt.ID = "btnAddTxt";
btnAddtxt.Text = "Add TextBox";
btnAddtxt.Click += new System.EventHandler(btnAdd_Click);
this.form1.Controls.Add(btnAddtxt);
//Recreate Controls
RecreateControls("txtDynamic", "TextBox");
}
保存到DB:
<asp:Button ID="btnSave" runat="server" Text="Save" OnClick="Save" />
<强> C#强>
protected void Save(object sender,EventArgs e)
{
string constr = ConfigurationManager.ConnectionStrings["constr"].ConnectionString;
using (SqlConnection con = new SqlConnection(constr))
{
using (SqlCommand cmd = new SqlCommand("INSERT INTO Names(Name) VALUES(@Name)"))
{
cmd.Connection = con;
cmd.Parameters.AddWithValue("@Name", txtDynamic.Text);
con.Open();
cmd.ExecuteNonQuery();
con.Close();
}
}
}
详情请参阅this link
修改强>
正如您在评论中提到的那样,您正在使用Jquery,因此为了在回发期间加载,请尝试加载文本框
function pageLoad() {// your dynamic Text box code using Jquery}