Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sharepoint 2010 回发后重新加载/刷新页面。SharePoint,可视Web部件(沙盒)_Sharepoint 2010_Postback_Web Parts_Sandbox - Fatal编程技术网

Sharepoint 2010 回发后重新加载/刷新页面。SharePoint,可视Web部件(沙盒)

Sharepoint 2010 回发后重新加载/刷新页面。SharePoint,可视Web部件(沙盒),sharepoint-2010,postback,web-parts,sandbox,Sharepoint 2010,Postback,Web Parts,Sandbox,我有一个可视化的web部件(沙盒),用于可视化用于添加子站点的表单。当添加子站点时,会将其添加到导航和下拉列表中(用于删除目的…) 我的问题是,回发后一切正常,除了我必须手动重新加载页面以查看新的更改(导航和下拉列表)。请注意,Response.Redirect或UpdatePanel在沙盒解决方案中都不起作用 有人找到了这个问题的解决方案吗?执行回发时,浏览器会将所有web控件的内容提交给服务器。从这个意义上讲,服务器是无状态的;控件的状态实际上存储在浏览器中。我想说出现问题是因为web控件不

我有一个可视化的web部件(沙盒),用于可视化用于添加子站点的表单。当添加子站点时,会将其添加到导航和下拉列表中(用于删除目的…)

我的问题是,回发后一切正常,除了我必须手动重新加载页面以查看新的更改(导航和下拉列表)。请注意,Response.RedirectUpdatePanel在沙盒解决方案中都不起作用


有人找到了这个问题的解决方案吗?

执行回发时,浏览器会将所有web控件的内容提交给服务器。从这个意义上讲,服务器是无状态的;控件的状态实际上存储在浏览器中。我想说出现问题是因为web控件不是从SharePoint对象模型填充的。相反,服务器使用接收到的数据作为回发。或者,甚至可能发生填充,但回发数据将覆盖控件的内容

解决方案是在从回发数据填充控件后刷新控件数据。例如,可以在OnPreRender方法中执行此操作。调用OnPreRender时,所有回发数据都已处理

尝试在webpart类中添加以下代码

protected override void OnPreRender(EventArgs args)
{
    if (this.Page.IsPostBack)
    {
        // Repopulate controls here
    }
}
当然,问题是,重新填充将终止控件的前一个(回发)状态。因此,如果要保留控件的当前值(例如下拉选择),则必须在重新填充之前保存该值并手动恢复


要了解ASP.NET中页面生命周期的详细信息,请参阅。

执行回发时,浏览器会将所有web控件的内容提交到服务器。从这个意义上讲,服务器是无状态的;控件的状态实际上存储在浏览器中。我想说出现问题是因为web控件不是从SharePoint对象模型填充的。相反,服务器使用接收到的数据作为回发。或者,甚至可能发生填充,但回发数据将覆盖控件的内容

解决方案是在从回发数据填充控件后刷新控件数据。例如,可以在OnPreRender方法中执行此操作。调用OnPreRender时,所有回发数据都已处理

尝试在webpart类中添加以下代码

protected override void OnPreRender(EventArgs args)
{
    if (this.Page.IsPostBack)
    {
        // Repopulate controls here
    }
}
当然,问题是,重新填充将终止控件的前一个(回发)状态。因此,如果要保留控件的当前值(例如下拉选择),则必须在重新填充之前保存该值并手动恢复


要了解ASP.NET中页面生命周期的更多信息,请参阅。

谢谢您的回答!如何填充控件?找不到好的例子/解释。例如,我想再次填充我的DropDownList1。请参阅(特别是在标题“通过服务器端代码填充DropDownList控件”下)。谢谢您的回答!如何填充控件?找不到好的例子/解释。例如,我想再次填充我的DropDownList1。请参阅(特别是在标题“通过服务器端代码填充DropDownList控件”下)。