添加行时GridView不刷新:try Databind()



我在我的页面中有一个GridView,但我没有通过GV添加我的行。添加直通文本框,然后将其显示到GV。现在的问题是,当我点击ADD按钮时,我的GV没有显示更新的行。如果我在我的菜单栏上点击那个页面,那么我的整个页面就会刷新,我可以看到我更新的GV。

下面是我的ADD_Click()事件的模拟:
    protected void btnAdd_Click(object sender, EventArgs e)
    {
                        var td = from s in cv.Test1
                                 join r in dt.Test2 on s.ID equals r.ID
                                 where s.Col1 == ColumnName
                                 select s;
                        gvShowComm.DataSource = td;
                        gvShowComm.DataBind();
                    }
                    catch (Exception err)
                    {
                        //Nothing!!!
                    }
            }
            else
            {
                MessageBox.Show("Please Enter Entry for the textboxes!");
            }
        }

现在当我添加记录时,GridView不显示更新的记录。谁能告诉我发生了什么事?

谢谢!

您应该验证的第一件事是您的td对象具有您期望的正确的行数。GridView应该正确地绑定到该对象,所以我的预感是你在td的结果是缺失的行。

如何"添加"行?您是否先将其保存到DB,然后再运行linq调用?从上面的代码中,它看起来就像你调用了一些linq来获取结果,但没有显示你添加了任何会导致结果与初始加载不同的东西。

你添加的伪代码应该是这样的:

  1. 将新行保存到数据库
  2. 获取新数据
  3. 将新数据绑定到网格

您也可以通过获取旧数据来手动完成。在绑定之前手动添加一行到旧数据(在您的示例中存储在td中),然后在您手动添加一行到linq结果后执行绑定。

相关内容

  • 没有找到相关文章