关于sharepoint 2010中使用AJAX的问题

evitlee 2011-02-12 11:05:25
有没有遇到过我的这个问题,我在sharepoint 2010中使用AJAX Extensions建立了一个可视化WebPart,把他放到主页上,想对这个WebPart进行局部刷新,可是不论怎么样都不行,都是整个主页刷新。附代码:

//因为主页继承MOSS母版页,所以使用母版页的ScriptManager,这里就不放ScriptManager了
<asp:UpdatePanel ID="upTest" runat="server">
//<asp:UpdatePanel ID="upTest" runat="server" UpdateMode="Conditional">
<ContentTemplate><asp:Timer ID="tTest" runat="server" Interval="1000"
ontick="tTest_Tick">
</asp:Timer><asp:HiddenField ID="hfHid"
runat="server" />
</ContentTemplate>
//<Triggers>
//<asp:AsyncPostBackTrigger ControlID="tTest" EventName="Tick" />
//</Triggers>
</asp:UpdatePanel>

(注释的是我之前写的代码,也不行,也是整页刷新。)

请问应该如何保证是局部刷新。
...全文
217 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
showenxxx 2011-04-11
  • 打赏
  • 举报
回复
推荐spservices,sharepoint的jquery插件

http://spservices.codeplex.com/
elementler 2011-03-30
  • 打赏
  • 举报
回复
楼主,不知道你的问题解决了没有。有可能是因为你用的ASP.NET控件使用了JavaScript_doPostBack()脚本函数来回送数据。这个函数会刷新整个页面,即使控件本身是放在UpdatePanel里。所以,要修改一些代码来改变这个脚本函数的运行方式。可以参考下面的代码(把它放到你的webpart类中)。不好意思,没有时间做测试这些代码。如果有错误,还请自己调试一下。

private void EnsurePanelFix()
{
if (this.Page.Form != null)
{
String fixupScript = @"
_spBodyOnLoadFunctionNames.push(""_initFormActionAjax"");
function _initFormActionAjax()
{
if (_spEscapedFormAction == document.forms[0].action)
{
document.forms[0]._initialAction =
document.forms[0].action;
}
}
var RestoreToOriginalFormActionCore =
RestoreToOriginalFormAction;
RestoreToOriginalFormAction = function()
{
if (_spOriginalFormAction != null)
{
RestoreToOriginalFormActionCore();
document.forms[0]._initialAction =
document.forms[0].action;
}
}";
ScriptManager.RegisterStartupScript(this,
typeof(<Your Web Part Class Type>), "UpdatePanelFixup",
fixupScript, true);
}
}
silentcross 2011-03-30
  • 打赏
  • 举报
回复
我也遇到过一样的问题,最后是通过自己给webpart实现ICallbackEventhandler接口实现的,那个updatepanel实在是不会用
forum2621 2011-03-17
  • 打赏
  • 举报
回复
看下能否取到scriptmanager

protected override void OnPreRender(EventArgs e) {
            base.OnPreRender(e);
            ScriptManager scriptManager = ScriptManager.GetCurrent(BasePage);
            if (scriptManager != null) {
                this.Forms.Controls.AddAt(0, new ScriptManager())
            }
        }


可以参考楼上的或下面这个
http://msdn.microsoft.com/en-us/library/bb861877.aspx
子夜__ 2011-02-19
  • 打赏
  • 举报
回复
Justin-Liu 2011-02-14
  • 打赏
  • 举报
回复
多测试测试 先放在一个独立的页面里头试试
powerchuangwai 2011-02-13
  • 打赏
  • 举报
回复
MOSS母版页应该不支持局部刷新。。
evitlee 2011-02-12
  • 打赏
  • 举报
回复
有人帮帮忙么?要沉了……
evitlee 2011-02-12
  • 打赏
  • 举报
回复
自己顶

3,242

社区成员

发帖
与我相关
我的任务
社区描述
企业开发 SharePoint
社区管理员
  • SharePoint社区
  • 霖雨
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧