如何从AJAX Web部件查询SharePoint(MOSS 2007)图像库?我正在从头开始构建这个Web部件,并建议使用SP对象模型,因为我可以使用VS2010在开发服务器上进行开发。
网页部分将无法显示图像
答案 0 :(得分:0)
这是一个非常广泛的问题,因此我将尝试解决一些高级别的挑战。
如果您想将AJAX与SP 2007一起使用,您可以进行一些设置。您需要设置web.config才能允许AJAX,因此我建议您查看属于http://features.codeplex.com/的AJAX.config功能。您可能需要考虑使用Version=3.5.0.0
而不是1.0。
启用AJAX后,您需要在页面的某个位置ScriptManager
。最简单的方法是使用SharePoint Designer将其添加到站点的母版页。
<WebPartPages:SPWebPartManager id="m" runat="Server"/>
<asp:ScriptManager EnableHistory="true" EnableSecureHistoryState="false" runat="server" ID="ScriptManager1"></asp:ScriptManager>
或者,“最佳”方式可能是创建一个新的支持AJAX的母版页,作为解决方案的一部分进行部署。
现在您的ScriptManager位于页面的某个位置,您将能够将其放入您的webpart中,如下所示:
ScriptManager currentScriptManager = ScriptManager.GetCurrent(this.Page);
接下来,您需要通过UpdatePanel
内的ajax更新所有控件。如果您使用2010,我认为它可能会为您创建一个可视化Web部件,因此您可能会在ASCX中使用它(我使用的是2008,因此它可能会略有不同):
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<Triggers>
<asp:AsyncPostBackTrigger ControlID="btnRollDice" EventName="Click" />
</Triggers>
<ContentTemplate>
<asp:Label runat="server" ID="lblRollMessage" Text="Click the button to roll the dice!" />
<asp:Label runat="server" ID="lblCurrentTime" Text="[Current time goes here]" />
</ContentTemplate>
</asp:UpdatePanel>
<asp:Button ID="btnRollDice" runat="server" Text="Roll the Dice!" />
最后,您将能够使用SharePoint对象模型开始查询SharePoint映像库。您可以获取当前的网址:
SPWeb web = SPControl.GetContextWeb(this.Context);
然后,获取您的图像库,并使用SPList.GetItems进行查询。以下是针对任务列表的示例:http://msdn.microsoft.com/en-us/library/ms457534.aspx