以编程方式查询SP图像库?

时间:2011-04-28 14:04:04

标签: ajax sharepoint

如何从AJAX Web部件查询SharePoint(MOSS 2007)图像库?我正在从头开始构建这个Web部件,并建议使用SP对象模型,因为我可以使用VS2010在开发服务器上进行开发。

网页部分将无法显示图像

1 个答案:

答案 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