窗口关闭时重新绑定数据网格

时间:2011-04-01 14:25:32

标签: c# sql datagrid

我有一个显示来自sql server的数据的数据网格。我有一个添加按钮,单击它时会打开一个新窗口,用户可以在其中放置正在添加的新项目的信息。当用户单击“保存”时,数据将保存到数据库中,但不会显示在网格中。有没有办法在关闭添加窗口时使datagrid绑定?如果需要更多信息,请与我们联系。感谢。

在我的主窗口中,它包含数据网格代码,我有一个添加按钮:

private void btnAdd_Click(object sender, RoutedEventArgs e)
{
        showAddWindow();
}

并且,showAddWindow方法是:

private void showAddWindow()
{
    add addWindow = new  add(dgDataView);
    addWindow.Owner = this;
    addWindow.WindowStartupLocation = WindowStartupLocation.CenterOwner;
    addWindow.ShowDialog();
}

2 个答案:

答案 0 :(得分:1)

如果您知道新插入对象的ID,则可以将其发送到主窗体,并使用新信息在网格上调用Add.Row。这样您就不会回调数据库进行重新绑定。

答案 1 :(得分:0)

假设这是WinForms:

首先,在调用“添加”窗口时,使用ShowDialog()而不是Show()

在使用DataGrid的主窗体中,代码看起来像

private void btnAdd_Click(Object sender, EventArgs e)
{
   DialogResult b =    frmAdd.ShowDialog();
   if(b == DialogResult.Ok)
   {
    // code to re-bind the grid here.
   }
}

在frmAdd表单中,您需要使用Save按钮在更新数据库后将表单的DialogResult设置为DialogResult.Ok。

我猜你所尝试的是:     private void btnAdd_Click(Object sender,EventArgs e)     {         frmAdd.ShowDialog();         //这里重新绑定网格的代码。     }

不同之处在于,使用ShowDialog()调用时,主窗体将等待“add”窗体关闭以继续执行。在我的第二个代码示例中,仅使用Show(),在用户有机会更新数据之前,在显示“添加”表单后立即重新绑定网格的代码。

(注意,我把这些代码放在了我的头脑中,而不是在Visual Studio中,所以它可能有错误)