2014-05-20 93 views
0

我想爲包含查詢的SharePoint 2007編寫CAML查詢。CAML查詢 - 包含空字符串

唯一的問題是,我想用邏輯,如:

如果我的搜索查詢具有價值,搜索與包含查詢 如果我的搜索查詢爲空,從列表中選擇

所有項目我曾與幾個查詢嘗試(這是我空的情況下):

<Query> 
    <Where> 
     <Or> 
      <IsNull> 
       <FieldRef Name="ImageFilter"/> 
      </IsNull> 
      <Contains> 
       <FieldRef Name='ImageFilter'></FieldRef> 
       <Value Type='Text'></Value> 
      </Contains> 
     </Or> 
    </Where> 
</Query> 

而且

<Query> 
    <Where> 
     <Contains> 
      <FieldRef Name='ImageFilter'></FieldRef> 
      <Value Type='Text'></Value> 
     </Contains> 
    </Where> 
</Query> 

但是沒什麼效果,

你能幫我解決嗎?

回答

0

如果我正確理解這一點,如果您將搜索查詢傳遞給正在生成CAML查詢的任何函數,則需要使用搜索詞來查找包含該搜索詞的項。如果沒有搜索詞存在,您想要返回所有項目。雖然我不確定您使用什麼來生成CAML,但最簡單的方法是,如果搜索項未包含,則不要在查詢中包含查詢。如果有搜索詞,那麼這應該工作

<Query> 
    <Where> 
    <Contains> 
     <FieldRef Name='ImageFilter'> 
     <Value Type='Text'>{searchterm}</Value> 
    </Contains> 
    </Where> 
</Query> 

其中{searchterm}是您要查找的術語。

+0

這是我以爲:(我需要以不同的方式處理,謝謝 – Tomasz

+1

雖然這可以處理單輸入searchterm,但如果有多個輸入文本框,我們正在做這些文本框,然後不確定如何忽略空白的..可以有任何組合空白-nonblank .. :( – Rohit