0

我有一个带有 Gridview 的主页,它显示来自数据库的数据。在 gridview 中有一个按钮,当单击此按钮时,将出现一个对话框,允许您编辑选定的行。该对话框被创建为一个 aspx 类。当我编辑数据并关闭对话框时,我想在主页上刷新我的 GridView,以便表示编辑后的数据。我怎样才能做到这一点?

我用于编辑数据和关闭对话框的代码是这样的:

 protected void editButton_Click(object sender, EventArgs e)
        {
            string alias = Request.QueryString["alias"];
            string custid = Request.QueryString["custid"];
            controller.EditDeliveries(custid, alias, tdaysField.Text, thoursField.Text, ttypeField.Text, pdaysField.Text, phoursField.Text, ptypeField.Text);
            ClientScript.RegisterClientScriptBlock(GetType(), "onUpload", "<script type='text/javascript'> window.close();</script>");
        }

任何人都可以帮忙吗?如果您需要查看更多代码,请告诉我。

4

1 回答 1

3

只需再次设置您的数据源并在回发中重新绑定它

   gvMyGrid.DataSource = myData; //Fresh from the database
   gvMyGrid.DataBind();          //Bam, fresh data

编辑:哦,如果它是回发源的另一个控件,您可以使用气泡事件来触发刷新。

第二次编辑:让对话框页面告诉主页更新该网格:

    RaiseBubbleEvent(this, new CommandEventArgs("DataUpdated", "This could be null, or I could be a message to let the user know things are updated")); 

然后在您的主页上

   protected override bool OnBubbleEvent(object sender, EventArgs e)
    {

        if (e is CommandEventArgs)
        {
            var args = (CommandEventArgs)e;
            //Could use args.CommandArgument here
            switch(args.CommandName)
            {
                  case "DataUpdated":

                     gvMyGrid.DataSource = myData; 
                     gvMyGrid.DataBind();          
                     return true;                  //Handled the event LIKE A BOSS
            }
        }
        return false;                              //I didn't handle this event
    }
于 2012-12-18T10:26:12.903 回答