如何在ASP.NET中将动态添加的文本框的值保存到数据库中

问题描述

|| 你好 我没有创建。的文本框(用户未在txtcount文本框中输入)。 但是我想将这些值存储到数据库中。为此,我在保存按钮单击事件中使用了代码,如下所示:
protected void btnsave_Click(object sender,EventArgs e)
    {
        // Check how many textBoxes the user created
        int count = Convert.ToInt32(txtcount.Text); 
        // Loop through them    
        for (int i=0; i < count; i++)
        {         
            // Get the TextBox      
            TextBox textBox = (TextBox)Page.FindControl(\"TextBox_\" + i); 
            // Get the value      
            string val = textBox.Text;

            Response.Write(val);

         } 
    } 
但是它给人错误
Object reference not set to an instance of an object.
我该怎么办? 请帮我? 谢谢。     

解决方法

        您应在每个回发中以相同顺序重新创建文本框。最好的地方是page_init。也许您有理由在page_load上执行此操作。 因此,您可以从viewstate获取其值。     ,        如果要引用动态控件,则需要在每个(回)后重新创建动态控件。使用
Page_Init
Page_Load
事件。 另一个替代方法(如果不能重复执行回发操作)可以是直接从请求中读取值。例如,
string val = Request.Form[\"TextBox_\" + i]
当然,如果在父层次结构中使用模板化控件(或主控件),则请求变量名称可能会更改。在这种情况下,解决方案之一是存储要以视图状态存储的示例控件名称(
UniqueID
)。