2011-05-28 90 views
0

查询:任何人都可以告诉我这个caml查询代码有什么问题吗?

<Where> 
    <Eq> 
    <FieldRef Name='Document Type' LookupId='True' />    
    <Value Type='Text'>Standards(STA)</Value> 
    </Eq> 
</Where> 
<OrderBy> 
<FieldRef Name='Number' Ascending='False'/> 
</OrderBy> 
<RowLimit>1</RowLimit>" 

代码上下文:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 

<%@ Import Namespace="System.IO" %> 
<%@ Import Namespace="Microsoft.SharePoint" %> 
<%@ Page Language="C#" inherits="Microsoft.SharePoint.WebPartPages.WebPartPage, Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %> 
<%@ Register tagprefix="WebPartPages" namespace="Microsoft.SharePoint.WebPartPages" assembly="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %> 
<%@ Register tagprefix="SharePoint" namespace="Microsoft.SharePoint.WebControls" assembly="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %> 
<html> 

<head> 
<meta name="WebPartPageExpansion" content="full" /> 
<meta name="ProgId" content="SharePoint.WebPartPage.Document" /> 


<h1>T-Site</h1> 

<script runat="server" type="">    

protected void sevak(object sender, EventArgs e) 

string lastitem; 
try 
{ 

    using (SPSite objsite = new SPSite("http://...")) 
    { 
    using (SPWeb objWeb = objSite.OpenWeb()) 
    { 
     SPList objList = objWeb.Lists["...."]; 
     SPQuery objQuery = new SPQuery(); 

     objQuery.Query = "<Where><Eq><FieldRef Name='Document Type' LookupId='True' />   <Value Type='Text'>Standards(STA)</Value></Eq></Where><OrderBy><FieldRef Name='Number' Ascending='False'/></OrderBy><RowLimit>1</RowLimit>"; 

     objQuery.Folder = objList.RootFolder; 
     SPListItemCollection colItems = objList.GetItems(objQuery); 

     if (colItems.Count>0) 
     { 
     lastitem=colItems(0); 
     } 
     else 
     { 
     Label1.Text="noItem"; 
     } 
    } 
    } 
} 
catch (Exception ex) 
{ 
    return ex; 
} 

Label1.Text= "lastitem"; 

<SharePoint:CssLink runat="server"></SharePoint:CssLink> 
<SharePoint:ScriptLink runat="server" language="javascript" name="core.js"> 

</SharePoint:ScriptLink> 

<body> 

<form id="form1" runat="server" action="Page-2.aspx"> 
<p> 


<asp:Button runat="server" Text="Submit" id="Button1" OnClick="sevak" ></asp:Button> 


</p> 
<p><asp:Label runat="server" id="Label1"></asp:Label></p> 
</form> 
</body> 


</html> 

回答

4

我认为这个问题是字段引用 “文件类型”:

  1. FieldRef元素期望引用字段的内部名称。如果通过UI创建了“文档类型”列,则该列的内部名称是“Document_x0020_Type”。

  2. 您指定了LookupId="True"这会导致查找与查找字段的ID相对,但您提供了文本值。根据您的字段类型,您应提供文档类型的数字ID或省略LookupId="True"部分以查询查找字段的文本。

相关问题