如何从内容页面上的按钮更新母版页上的GridView?

时间:2011-09-13 12:59:29

标签: c# .net gridview master-pages

我在UpdatePanel上有一个带有GridView的MasterPage。在我的一个内容页面上,我有一个按钮,它将项目添加到我希望出现在MasterPage上的Gridview中的会话中。我有Gridview中的项目,但有刷新或回发等问题。有没有人对此有答案?

2 个答案:

答案 0 :(得分:1)

如果updatepanel中有刷新问题,则表示后退按钮不在更新面板内,或者面板未手动更新。

对于这种情况,我假设您不能将按钮放在面板中,因为它是内容页面的一部分,所以我建议您将面板的UpdateMode设置为条件并在您的母版页上使用一些刷新方法。为了在内容页面中看到这个方法,用这个方法做一些接口,让masterpage使用这个接口。

然后在内容页面中获取主页参考并使用刷新方法。

e.g。

界面

public interface IMaster
{
    void RefreshPanel();
}

主页

(请注意,它使用我们之前创建的 IMaster 界面)

public partial class MasterPage : System.Web.UI.MasterPage,  IMaster
{
    protected void Page_Load(object sender, EventArgs e)
    {
        //Load items from session
    }

    public void RefreshPanel()
    {
        UpdatePanel1.Update();
    }
}

内容页面

public partial class ContentPage : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }
    protected void Button1_Click(object sender, EventArgs e)
    {

       //Add items to session 
       //....

        //Now refresh the updatepanel on the masterpage
        IMaster masterPage = Master as IMaster;
        masterPage.RefreshPanel();
    }
}

答案 1 :(得分:0)

您需要考虑使用Events and Delegates。基本上,您将在Usercontrol上创建一个事件,您的MasterPage将对此做出反应。还有许多其他网站都有示例,所以只需谷歌ASP.NET事件和代表。