如何更改 gridview 行中文本框的值?

How can i change value from textbox in row in gridview?

我正在从 gridview 中的文本框中获取值,并尝试使用两个不同的按钮更改该值。 (增加和减少按钮)第一次点击是有效的而不是无效的。

我正在检查浏览器的控制台以获取信息,我得到了以下信息:"XHR finished loading: POST"你知道为什么按钮点击只起作用一次吗?

这是我的增加代码:

public void btn_increase_Click(object sender, EventArgs e)
{
   foreach(GridViewRow row in gridview1.Rows)
   {
     Textbox quantity = (Textbox)row.FindControl("txt_quantity");
     int input_quantity = Convert.ToInt32(quantity.Text);
     if(input_quantitiy >= 0)
     {
       quantity.Text = Convert.ToString(input_quantity + 1);
     }
   }
}

已更新

如果您完全从您的程序中复制了该代码,那么您可以尝试解决一些可能会有所帮助的问题:

  • input_quantityif() 语句中拼写错误。
  • 交换 if 语句中的 =>,目前不检查大于或等于,而是一个 lambda 表达式。

此外,如果您知道 TextBox 的 ID,并且只需要 increase/decrease 一个 TextBox,是否有任何理由遍历 GridView?您可以达到以下相同的目的:

            TextBox quantity = txt_quantity;
            int input_quantity = Convert.ToInt32(quantity.Text);
            if (input_quantity >= 0)
            {
                quantity.Text = Convert.ToString(input_quantity + 1);
            }

我找到了解决办法,而且非常简单。如果您的按钮点击不起作用并且在浏览器上出现 "XHR finished loading: POST" 错误。检查您的 Page_Load,如果页面不是这样的回发,请确保绑定 gridview:

if(!IsPostBack)
{
   gridview.DataSource = dataset.Tables[0];
   gridview.DataBind();
}