如何在ASP .NET中关闭Dialog后刷新GridView

时间:2012-12-18 10:24:07

标签: c# asp.net .net

我有一个带有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>");
        }

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

1 个答案:

答案 0 :(得分: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
    }