小编kev*_*een的帖子

CAML查询到SharePoint列表,按查找字段排序

我正在尝试通过CAML从SharePoint中提取列表,我希望按特定字段排序返回的列表.该字段是查找字段.当我将OrderBy设置为查找字段时,查询返回无序,如果我使用文本字段就可以了.

当我在编辑器中构建它时,U2U CAML查询构建器将返回有序的查询.

这是我如何构建和执行查询的代码片段:

String baseQuery = "<Query><Where><Eq><FieldRef Name='paApproved' /><Value Type='Boolean'>1</Value></Eq></Where><OrderBy><FieldRef Name='paState' Ascending='True' LookupValue='TRUE' /></OrderBy></Query>";

qStates.Query = baseQuery;

SPListItemCollection byState = web.Lists["paUpdates"].GetItems(qStates);
Run Code Online (Sandbox Code Playgroud)

其余的是一个for循环,它解析集合并显示它.如有必要,我可以发布.

这是CAML查询工具发出的SOAP调用,我使用wireshark从HTTP流中删除它.

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope 
      xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" 
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
      xmlns:xsd="http://www.w3.org/2001/XMLSchema">
 <soap:Body>
  <GetListItems xmlns="http://schemas.microsoft.com/sharepoint/soap/">
   <listName>paUpdates</listName>
   <query>
    <Query xmlns="">
     <Where>
      <Eq>
       <FieldRef Name="paApproved" />
       <Value Type="Boolean">1</Value>
      </Eq>
     </Where>
     <OrderBy>
      <FieldRef Name="paState" Ascending="False" />
     </OrderBy>
    </Query>
   </query>
   <viewFields>
    <ViewFields xmlns="" />
   </viewFields>
   <queryOptions>
    <QueryOptions xmlns="" />
   </queryOptions>
  </GetListItems>
 </soap:Body>
</soap:Envelope>
Run Code Online (Sandbox Code Playgroud)

无论出于何种原因,CAML查询工具都能正常工作,我的代码却没有.谁知道为什么?提前致谢.

编辑反映我实际测试的代码.我有一些代码值不正确.

c# sharepoint caml

7
推荐指数
1
解决办法
3万
查看次数

在SharePoint 2007中使用C#以编程方式创建页面

不确定这是否被问到,但搜索还没有完全找到我正在寻找的东西.我已经有了页面布局,我需要做的是以编程方式在Pages库中创建一个页面.

我对细节很模糊,但不知怎的,我想我需要打开布局,然后将其流式传输到页面然后保存页面.我不确定该怎么做.

该页面是上下文敏感的,所以我想我将首先使用SPSite和SPWeb来访问列表.

我不清楚的是,我怎样才能获得布局?我想我应该可以添加一个像这样的页面:

 SPWeb web = SPContext.Current.Site.OpenWeb();


                    SPList Pages = web.Lists["Pages"];
                    SPListItemCollection splc = Pages.Items;


                    foreach (SPListItem spli in splc)
                    {
                        if (spli.Name == "lmIntraTopicsArticle")
                        {

                        }
                    }

                    SPListItem sli = splc.Add();
                    Pages.Update();
                    SPFolder PagesFolder = Pages.RootFolder;
                    byte[] layoutContents = new byte[20];
                    SPFile myNewPage = PagesFolder.Files.Add(PagesFolder.Url + "/TopicWindowArchive.aspx", layoutContents);
                    web.Update();
Run Code Online (Sandbox Code Playgroud)

现在我需要弄清楚如何从布局中添加内容.如果我搞清楚的话会更新一些.

谢谢,

c# sharepoint moss sharepoint-2007

2
推荐指数
1
解决办法
4640
查看次数

如何让Axis2处理数组?

我正在从PHP NuSoap实现中检索数据,它正在返回如下数据:

<SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/">

<SOAP-ENV:Body>

<ns1:getHashCodeAllTablesResponse xmlns:ns1="urn:getSchemaForRhythms">

<return xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType=":[121]">

<item xsi:type="xsd:">

<md5Hash xsi:type="xsd:string">e294967afe9834bf8477252ac0c3686e</md5Hash>

<tableName xsi:type="xsd:string">SYSCONGLOMERATES</tableName>

<isView xsi:type="xsd:string">false</isView>

<viewDefinition xsi:type="xsd:string">null</viewDefinition>

</item>
Run Code Online (Sandbox Code Playgroud)

我认为这是问题所在: <return xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType=":[121]">

当我将Axis2 soap客户端指向服务时,我收到此错误:

org.apache.axis2.AxisFault: org.apache.axis2.databinding.ADBException: Unsupported type http://schemas.xmlsoap.org/soap/encoding/ Array

这是我正在尝试做的一个非常简单的java示例:

public static void main(String[] args) {
    // TODO code application logic here
    try{
        GetSchemaForRhythmsStub stub = new GetSchemaForRhythmsStub(null,"http://test.test.com/sqlSchemaService/schemaBuilder.php" );
        GetSchemaForRhythmsStub.GetHashCodeAllTablesE response2= new GetSchemaForRhythmsStub.GetHashCodeAllTablesE();
        stub.getHashCodeAllTables(response2);
    }catch(Exception ex)
    {
       System.out.println(ex.toString());

    }
}
Run Code Online (Sandbox Code Playgroud)

我找不到任何与Array数据类型和Axis相关的文档.我错过了什么吗?

谢谢,

java xml soap nusoap

2
推荐指数
1
解决办法
6677
查看次数

标签 统计

c# ×2

sharepoint ×2

caml ×1

java ×1

moss ×1

nusoap ×1

sharepoint-2007 ×1

soap ×1

xml ×1