Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/272.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# 如何在C中只更新Gridview#_C#_Asp.net_Gridview - Fatal编程技术网

C# 如何在C中只更新Gridview#

C# 如何在C中只更新Gridview#,c#,asp.net,gridview,C#,Asp.net,Gridview,我的C#ASP.net应用程序中有gridview 当用户编辑一行时,我所要做的就是更新gridview的数据源(还不是数据库,因为我只是在最后获取datagrid的数据源,并将其作为数据集推送到数据库中) 但是我得到的值是旧值,而不是我在gridview上编辑的更新值 为什么会这样?我遵循所有关于这些链接的建议 protected void grdViewDetails_RowUpdating(object sender, GridViewUpdateEventArgs e)

我的C#ASP.net应用程序中有gridview

当用户编辑一行时,我所要做的就是更新gridview的数据源(还不是数据库,因为我只是在最后获取datagrid的数据源,并将其作为数据集推送到数据库中)

但是我得到的值是旧值,而不是我在gridview上编辑的更新值

为什么会这样?我遵循所有关于这些链接的建议

    protected void grdViewDetails_RowUpdating(object sender, GridViewUpdateEventArgs e)
    {
        GridViewRow row = (GridViewRow)grdViewDetails.Rows[e.RowIndex];
        int adsf = row.Controls.Count;

        foreach (Control item in row.Controls)
        {
            if (item.Controls[0] is TextBox)
           {
               TextBox textbox = (TextBox)item.Controls[0];
               string x = textbox.Text;

//on the second for loop the string variable x = Employee1
           }
           if (item.Controls[0] is Label)
           {
               Label mylabel = (Label)item;
               //do stuff
           }

现在textbox变量x应该是xxxxxxx,但它仍然是旧值。。。。为什么会发生这种情况


你不能只更新gridview而不更新任何其他数据集/源。因为我在最后使用了gridview的整个数据源。

您可以使用
GridViewUpdateEventArgs
访问新值。下面是一个例子:


您可以使用调试器更仔细地检查
e
变量,并找出需要哪些值。

您可以使用
GridViewUpdateEventArgs
访问新值。下面是一个例子:


您可以使用调试器更仔细地检查
e
变量,并找出需要哪些值。

问题是,e.NewValues计数为0。。。。也许因为它的数据源是一个数据集?啊,我明白我的问题是什么了,谢谢!我没有将if(!isPostback)放在我的load()中,因此将旧值重新加载到编辑框中。谢谢,事情是,e.NewValues计数是0。。。。也许因为它的数据源是一个数据集?啊,我明白我的问题是什么了,谢谢!我没有将if(!isPostback)放在我的load()中,因此将旧值重新加载到编辑框中。谢谢
  void CustomersGridView_RowUpdating(Object sender, GridViewUpdateEventArgs e)
  {

    // Iterate through the NewValues collection and HTML encode all 
    // user-provided values before updating the data source.
    foreach (DictionaryEntry entry in e.NewValues)
    {

      e.NewValues[entry.Key] = Server.HtmlEncode(entry.Value.ToString());

    }
  }