2011-04-07 31 views
1

我在我的页面中有一个GridView,但我不通过GV添加我的行。通过文本框添加,然后将其显示给GV。现在的问题是,当我点击ADD按钮时,我的GV没有显示更新的行。如果我在菜单栏上单击该页面,则整个页面将刷新,并且可以看到我更新的GV。GridView添加一行时不刷新:尝试Databind()

这里是模拟了我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控件没有显示更新的记录。谁能告诉我发生了什么事?

谢谢!

回答

2

您应该验证的第一件事是您的td对象具有您期望的正确数量的行。 GridView应该正确绑定到该对象,所以我的直觉是你的结果td是缺少该行。

你是如何“添加”行?你是先保存到数据库然后运行你的linq调用?从上面的代码中,它看起来像你调用一些linq来获取结果,但没有任何内容显示你添加了任何会导致结果与初始加载不同的结果。

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

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

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

+0

谢谢!那就像Jem一样。我没有拉td :(右) – 2011-04-07 18:11:41