用户覆盖input.text值

时间:2014-12-04 12:08:52

标签: c# asp.net

您好,我在尝试为数据库中存储的配置文件创建“编辑”页面时遇到此问题。 为了简单起见,我得到了一个textbox,我从数据库中获取一个值并将其应用到带有教科书的文本框中。 text =“value”;`。

到目前为止工作得很好。 然后我希望用户能够编辑文本框中的文本,然后按保存,这将保存文本框的编辑内容。但它没有,它保存了我用textbox.text应用的值。 我使用textbox.text从按钮单击功能中的文本框中获取值。

我做错了什么? - 来自用户的输入是否不会覆盖.text value

    TextBoxNavn.Text = "Navn";       
   protected void ButtonSave_Click(object sender, EventArgs e)
        {
       using (SqlCommand command = new SqlCommand())
           {
         command.Connection = connection;
         command.CommandType = CommandType.Text;
         command.CommandText = "UPDATE Politikere SET Navn = @Navn WHERE ID = @ID";
         command.Parameters.AddWithValue("@Navn", TextBoxNavn.Text);
           }
       }

在第一行和update语句之间,用户已经在文本框中编辑了文本,但它仍然保存了第一行的值。

如果我删除第一行并在文本框中输入值,则会保存输入的值。这就是为什么我怀疑问题是.text - 但我不知道该怎么办。enter code here

修改

对不起,如果我不清楚。但是所有的值都输入并且效果很好。对某些人来说太好了。 有太多的代码指出这个小片段。但是通过缩小问题范围,我发现如果我没有在page_load中使用TextBoxNavn.Text插入数据库值,它会使用新值更新数据库中的值。但是在插入时,用户编辑的值不会被保存,但是我从数据库中插入的值

编辑II

步骤:

  1. 我从数据库中获取数据并使用TextBoxNavn.Text将其插入TextBoxNavn
  2. 用户将转到该页面并编辑文本框,在TextBoxNavn中编写新名称
  3. 用户按“保存”按钮
  4. TextBoxNavn的值由TextBoxNavn.Text
  5. 检索
  6. 保存到数据库的值是步骤1中的值,但我需要它是步骤2中的值

1 个答案:

答案 0 :(得分:2)

我假设您在页面加载中使用DataBind()。如果是,请将其更改为“

if(!Page.IsPostBack)
{
DataBind();
}

`

或者共享将数据绑定到文本框的完整代码。如果在PageLoad上绑定控件,则会在控件事件之前调用Bind,在这种情况下,您输入的值将被Databind()函数覆盖。请参阅以下链接以获取asp.net页面生命周期。

http://msdn.microsoft.com/en-us/library/ms178472(v=vs.100).aspx