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