我有一个带有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>");
}
有人可以帮忙吗? 如果您需要查看更多代码,请告诉我。
答案 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
}