Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何更改gridview中行中文本框的值?_C#_Button_Gridview_Textbox_Aspxgridview - Fatal编程技术网

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

C# 如何更改gridview中行中文本框的值?,c#,button,gridview,textbox,aspxgridview,C#,Button,Gridview,Textbox,Aspxgridview,我从gridview中的文本框中获取值,并尝试使用两个不同的按钮更改值。(增加和减少按钮)第一次单击有效,而不是无效 我正在检查浏览器的控制台以获取信息,我得到了以下信息:“XHR已完成加载:POST”您知道为什么按钮单击只能工作一次吗 以下是我的加薪代码: public void btn_increase_Click(object sender, EventArgs e) { foreach(GridViewRow row in gridview1.Rows) { Tex

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

我正在检查浏览器的控制台以获取信息,我得到了以下信息:“XHR已完成加载: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);
     }
   }
}

更新的

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

  • if()
    语句中的
    input\u quantity
    拼写错误
  • 将if语句中的
    =
    互换,当前也没有检查大于或等于,而是一个
    lambda
    表达式
另外,如果您知道文本框的ID,并且只需要增加/减少一个文本框,那么是否有任何理由迭代GridView?您可以实现以下相同的目标:

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

我找到了一个非常简单的解决方案。如果您的按钮单击不起作用,并且XHR已完成加载:在浏览器上发布错误。检查您的
页面\u加载
,如果页面没有像这样回发,请确保将gridview绑定到:

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

这是我的错误,我只是写了代码而不是复制/粘贴。我的if语句和你的一样。我不知道为什么在浏览器上出现“获取”错误后只处理第一次单击。您是否能够在网格视图中的每一行中引用循环外的文本框,或者您是否有多个文本框?我上面包含的代码没有使用foreach循环,它正确地增加了文本框。这是一个网格视图,当然,如果您有十行,那么您可以更改十行上的值。看来这一次效果不错,因为我可以增加/减少一次。(-1/+1)没有任何问题。如果我设置为20,则文本框为20。我只想用我的代码增加或减少每次点击。嘿,我找到了一个解决方案。这是关于页面加载的,代码运行良好。我分享了答案,希望对你有帮助。