सामग्री क्वेरी वेब पार्ट परिणाम प्रदर्शित ग्रिड में / तालिका

अवलोकन और उद्देश्य

बॉक्स से बाहर, काई’ सामग्री क्वेरी वेब भाग (CQWP) इसका परिणाम एक सूची स्वरूप में प्रदर्शित करता है, खोज परिणामों के समान. यह भी एक ग्रिड स्वरूप में परिणाम प्रदर्शित करने के लिए संभव है (अर्थात. HTML तालिका स्वरूप). ग्रिड स्वरूप में कुछ हालात बेहतर होते हैं. मैं इस लेख में उस प्रभाव को प्राप्त करने के लिए कैसे का वर्णन.

व्यापार परिदृश्य

मैं एक उद्यम-व्यापी काई rollout पर एक ग्राहक के साथ काम किया है. हम उनके वर्गीकरण बनाया गया है ऐसी है कि परियोजनाओं के पदानुक्रम में प्रथम श्रेणी के नागरिक हैं और उनके अपने शीर्ष स्तर साइट है. परियोजना प्रबंधकों परियोजना सारांश जानकारी का एक सिंगलटन सूची को बनाए रखने, ऐसे शीर्षक, बजट, पूरा होने के उम्मीद की तारीख, शेष बजट और अन्य सारांश प्रकार के फ़ील्ड् स. द्वारा "सिंगलटन" मेरा मतलब है एक कस्टम SharePoint सूची केवल एक आइटम होते हैं की गारंटी. Simplistically, यह इस तरह दिखता है:

छवि

तकनीकी दृष्टिकोण बहुत ही के रूप में वर्णित है यहाँ (http://paulgalvin.spaces.live.com/blog/cns!1CC1EDB3DAA9B8AA!447.entry). CQWP रेंडर करने के लिए HTML ब्राउज़र के लिए फेंकना करने के लिए कोई XSL ट्रांस्फ़ॉर्म का उपयोग करता है.

मैं हमेशा XSL में गोताखोरी से पहले क्योंकि XSL एक दुःस्वप्न है नतीजा कल्पना. यहाँ है मेरे वांछित परिणाम:

छवि

HTML इस तरह उस परिणाम उत्पन्न करता है:

<html>
 <शरीर>
 <केंद्र>
 <तालिका बॉर्डर= 1>

<!-- लेबल->
 <टी. आर. bgcolorब्लू =>
 <td><फ़ॉन्ट रंग/ / u003d व्हाइट><>प्रोजेक्ट का नाम</></फ़ॉन्ट></td>
 <td संरेखित करेंसही =><फ़ॉन्ट रंग/ / u003d व्हाइट><>पूर्ण दिनांक</></फ़ॉन्ट></td>
 <td संरेखित करेंसही =><फ़ॉन्ट रंग/ / u003d व्हाइट><>बजट</></फ़ॉन्ट></td>
 <td संरेखित करेंसही =><फ़ॉन्ट रंग/ / u003d व्हाइट><>वास्तविक व्यय</></फ़ॉन्ट></td>
 <td><फ़ॉन्ट रंग/ / u003d व्हाइट><>समग्र स्थिति</></फ़ॉन्ट></td>
 </टी. आर.>

<टी. आर.>
 <td>कम्प्यूटर कक्ष पुनः वायर.</td>
 <td संरेखित करेंसही =>02/01/08</td>
 <td संरेखित करेंसही =>22,500.00</td>
 <td संरेखित करेंसही =>19,000.00</td>
 <td>प्रगति में</td>
 </टी. आर.>

<टी. आर.>
 <td>प्रावधान के लिए नवीनीकरण SQL सर्वर</td>
 <td संरेखित करेंसही =>04/01/08</td>
 <td संरेखित करेंसही =>7,500.00</td>
 <td संरेखित करेंसही =>0.00</td>
 <td>की योजना बनाई</td>
 </टी. आर.>

</तालिका>
 </केंद्र>
 </शरीर>
</html>

दृष्टिकोण

ग्रिड बनाने के लिए इन चरणों का पालन करें:

  1. ग्रिड के घटकों की पहचान (पंक्तियाँ/स्तंभ).
  2. परिभाषित करें और आवश्यक साइट स्तंभ बनाना.
  3. उप साइटें परियोजनाओं और सिंगलटन सूचियों के लिए बनाएँ.
  4. CQWP एक वेब पेज को जोड़ने और यह आपकी सूचियों के लिए खोज करने के लिए कॉन्फ़िगर करें.
  5. CQWP XML ऊपर अतिरिक्त स्तंभों को इकट्ठा करने के लिए संशोधित करें.
  6. XSL एक मेज उत्पन्न करने के लिए संशोधित करें.

मैं नंबर छह पर ध्यान केंद्रित करने जा रहा हूँ. सीधे आगे और कुछ है कि किसी भी CQWP उपयोगकर्ता पहले से ही किया है चार के माध्यम से एक नंबर रहे हैं. संख्या पाँच MSDN से इस संपूर्ण स्क्रीन-शॉट लादेन लेख सहित अन्य लोगों द्वारा अच्छी तरह से प्रलेखित किया गया है यहाँ (http://msdn2.microsoft.com/en-us/library/bb897399.aspx) और हीदर सुलैमान ब्लॉग यहाँ (http://www.heathersolomon.com/blog/articles/CustomItemStyle.aspx).

नट और बोल्ट

आरंभ और MSDN प्रलेखन और हीदर सुलैमान के लेख के अनुसार पांच के माध्यम से एक कदम को लागू.

इस बिंदु पर, आप अपने CQWP पेज को जोड़ दिया है और आपके पास अपने <CommonViewFields> के रूप में आवश्यक कॉन्फ़िगर किया गया.

सामान्य चरणों का पालन, मैं इन मध्यवर्ती परिणाम प्राप्त:

1. कोई सामग्री प्रकार बनाना, एक templatized कस्टम सूची सामग्री प्रकार और दो साइटों के लिए. यहाँ सामग्री प्रकार है:

छवि

यहाँ साइट संरचना है:

छवि

2. मेरी परियोजना सबसाइट्स और सिंगलटन परियोजना सारांश सूचियाँ बनाने के बाद CQWP में जोड़ें:

छवि

3. मैं चाहता हूँ के माध्यम से सभी अतिरिक्त जानकारी जोड़ें <CommonViewFields>:

        <संपत्ति नाम="CommonViewFields" प्रकार="स्ट्रिंग">Project_x0020_Name;Project_x0020_Expenses;Project_x0020_Status;Project_x0020_Start_x0020_Date;Project_x0020_End_x0020_Date;Project_x0020_Budget</संपत्ति>

ध्यान दें कि सभी गुण फ़ील्ड एक लाइन या इसे पर रखने के लिए मैंने काम नहीं होता (CQWP मुझे बताना होगा कि क्वेरी कोई आइटम नहीं लौटा).

4. इस बिंदु पर, हम MSDN आलेख से परे ले जाने के लिए तैयार कर रहे हैं और पर पर पलटें हीदर सुलैमान के लेख के लिए. उसके चरणों के निकट चरण शुरू करने का पालन करें #5 एक अनुकूलित बनाने के लिए / ItemStyle.xsl का unghosted संस्करण. मैं हीथ की सलाह का पालन करें, ऊपर चरण के माध्यम से 11 और इन मध्यवर्ती परिणाम प्राप्त:

4.1: मेरी XSL टेम्पलेट निम्नानुसार ही नाम दें:

<xsl:टेम्पलेट का नाम = "ग्रिड" मैच "पंक्ति =[@Style 'ग्रिड' =]" मोड = "itemstyle">

मैं भी थोड़ा उसे सुझाव दिया संशोधित करें <xsl:के लिए प्रत्येक …> जोड़ने के द्वारा एक <br /> टैग एक क्लीनर लिस्टिंग प्रदान करने के लिए:

    <xsl:के लिए प्रत्येक का चयन करें="@*">
      पी:<xsl:मान का का चयन करें="नाम()" /><br/>
    </xsl:के लिए प्रत्येक>

4.2: मैं वेब पार्ट को संशोधित करें, उपस्थिति के लिए जाओ और मेरी "ग्रिड का चयन करें" शैली:

छवि

परिवर्तन लागू करें और यहाँ का परिणाम है:

छवि

हम से ऊपर क्षेत्रों हम चाहते हैं देख सकते हैं (प्रोजेक्ट का नाम, व्यय, स्थिति, आदि) हमारे लिए जब हम HTML का उत्सर्जन का उपयोग करने के लिए उपलब्ध हैं. इतना ही नहीं, लेकिन हम देखते हैं जिसके द्वारा हम XSL में उन स्तंभों का संदर्भ लेना चाहिए के नाम. उदाहरण के लिए, हम के रूप में "Project_x005F_x0020_Name" परियोजना की स्थिति का संदर्भ.

इस बिंदु पर, हम इन दिग्गजों के कंधों से और हीदर ब्लॉग से विदा, मैं मेरा अपना छोटा सा जोड़ें.

ContentQueryMain.xsl

नोट: जब परिवर्तन करने के साथ दोनों ContentQueryMain.xsl ही ItemStyle.xsl, आप की जरूरत है इससे पहले कि आप अपने परिवर्तनों के प्रभाव देखने में उन फ़ाइलों को वापस की जाँच करने के लिए.

ग्रिड बनाने के प्रयोजनों के लिए, काई हम देखते हैं एक CQWP से परिणाम का उत्पादन करने के लिए दो अलग अलग XSL फ़ाइलों का उपयोग करता है. आउटपुट का पिछला सा उत्पन्न करने के लिए, हम ItemStyle.xsl संशोधन. काई वास्तव में एक और XSL फ़ाइल का उपयोग करता है, अपने HTML जनरेट करने के लिए ItemStyle.xsl के साथ संयोजन के रूप में करने के लिए ContentQueryMain.xsl. जैसा कि इसके नाम का तात्पर्य, "मुख्य ContentQueryMain.xsl है" XSL कि अनुवाद के समग्र प्रवाह नियंत्रण. यह सब पाया आइटम के माध्यम से iterates और उन्हें टेम्पलेट् स के लिए एक से गुजरता है ItemStyle.xsl में. हम खुले उत्पन्न करने के लिए ItemStyle.xsl को संशोधित करेंगे <तालिका> टैग डेटा और समापन की पहली पंक्ति के प्रकाश का उत्सर्जन से पहले <तालिका> अंतिम पंक्ति उत्सर्जक के बाद टैग. यह पूरा करने के लिए, हमारे "ग्रिड के लिए दो मानकों से गुजारें को संशोधित किया गया है ContentQueryMain.xsl" ItemStyle.xsl में टेम्पलेट, "अंतिम पंक्ति" और "वर्तमान पंक्ति". ItemStyle.xsl ये सशर्त आवश्यक टैग फेंकना करने के लिए उपयोग करता है.

हीथ सोलोमन तकनीक का उपयोग करना, हम ContentQueryMain.xsl का पता लगाएँ. यह ItemStyle.xsl के रूप में एक ही स्थान में स्थित है. इस स्क्रीन शॉट में मदद चाहिए:

छवि

हम निम्नलिखित बदलाव करने की जरूरत:

  • कोई xsl टेम्पलेट संशोधित करें, "CallItemTemplate" कि वास्तव में ItemStyle.xsl में हमारे ग्रिड टेम्पलेट invokes. इतना है कि यह डेटा यह सशर्त उत्पन्न खोलने और बंद करने के लिए की जरूरत है होगा हम ग्रिड टेम्पलेट को दो पैरामीटर पारित करेगा <तालिका> टैग.
  • ContentQueryMain.xsl कि "CallItemTemplate कॉल का एक अन्य सा संशोधित करें" यह एक "LastRow पारित करने के लिए" तो उस LastRow हमारे ग्रिड टेम्पलेट के लिए पारित किया जा सकता पैरामीटर.

"OuterTemplate.CallItemTemplate नामक टेम्पलेट का पता लगाएँ" स्ट्रिंग द्वारा की पहचान की:

  <xsl:टेम्पलेट नाम="OuterTemplate.CallItemTemplate">

पूरे टेम्पलेट निम्नानुसार बदलें:

  <xsl:टेम्पलेट नाम="OuterTemplate.CallItemTemplate">
    <xsl:परम नाम="CurPosition" />

    <!--
      "LastRow में जोड़ें" पैरामीटर.
      आइटम शैली दर्रा में "ग्रिड" है जब हम केवल यह उपयोग करें.
    -->
    <xsl:परम नाम="LastRow" />

    <xsl:चुनें>
      <xsl:कब टेस्ट="@Style 'NewsRollUpItem' =">
        <xsl:लागू टेम्पलेट्स का चयन करें="." मोड="itemstyle">
          <xsl:परम के साथ नाम="EditMode" का चयन करें="$cbq_iseditmode" />
        </xsl:लागू टेम्पलेट्स>
      </xsl:कब>
      <xsl:कब टेस्ट="@Style 'NewsBigItem' =">
        <xsl:लागू टेम्पलेट्स का चयन करें="." मोड="itemstyle">
          <xsl:परम के साथ नाम="CurPos" का चयन करें="$CurPosition" />
        </xsl:लागू टेम्पलेट्स>
      </xsl:कब>
      <xsl:कब टेस्ट="@Style 'NewsCategoryItem' =">
        <xsl:लागू टेम्पलेट्स का चयन करें="." मोड="itemstyle">
          <xsl:परम के साथ नाम="CurPos" का चयन करें="$CurPosition" />
        </xsl:लागू टेम्पलेट्स>
      </xsl:कब>

      <!--
              ग्रिड itemstyle.xsl टेम्पलेट के लिए पारित की वर्तमान स्थिति, और lastrow.
              ItemStyle.xsl का उपयोग करेंगे कि खुले फेंकना करने के लिए और समापन <तालिका> टैग.
      -->
      <xsl:कब टेस्ट="@Style 'ग्रिड' =">
        <xsl:लागू टेम्पलेट्स का चयन करें="." मोड="itemstyle">
          <xsl:परम के साथ नाम="CurPos" का चयन करें="$CurPosition" />
          <xsl:परम के साथ नाम="अंतिम" का चयन करें="$LastRow" />
        </xsl:लागू टेम्पलेट्स>
      </xsl:कब>

      <xsl:अन्यथा>
        <xsl:लागू टेम्पलेट्स का चयन करें="." मोड="itemstyle">
        </xsl:लागू टेम्पलेट्स>
      </xsl:अन्यथा>
    </xsl:चुनें>
  </xsl:टेम्पलेट>

टिप्पणी परिवर्तन के उद्देश्य का वर्णन.

बेशक, "OuterTemplate.CallItemTemplate" ही किसी अन्य टेम्पलेट से कहा जाता है. इस पाठ स्ट्रिंग के लिए खोज के द्वारा उस टेम्पलेट का पता लगाएँ:

<xsl:टेम्पलेट नाम="OuterTemplate.Body">

OuterTemplate.Body में दिए गए निर्देशों के माध्यम से स्क्रॉल करें और LastRow पैरामीटर निम्नानुसार डालें (तिर्छा में किसी टिप्पणी के रूप में दिखाया गया):

<xsl:कॉल-टेम्पलेट नाम="OuterTemplate.CallItemTemplate">
  <xsl:परम के साथ नाम="CurPosition" का चयन करें="$CurPosition" />
  <!-- LastRow पैरामीटर सम्मिलित करें. -->
  <xsl:परम के साथ नाम="LastRow" का चयन करें="$LastRow"/>
</xsl:कॉल-टेम्पलेट>

इस सब के बाद, हम अंत में बातें इतना है कि हमारे ItemStyle.xsl का उत्सर्जन कर सकते हैं ठीक से सेट है <तालिका> सही जगह पर टैग.

ItemStyle.Xsl

नोट: फिर से, ItemStyle.xsl में इतनी है कि आप उन परिवर्तनों के प्रभाव को देख कोई भी परिवर्तन करने के बाद की जाँच करें.

हम यहाँ दो कार्य है:

  • पूरे ग्रिड टेम्पलेट बदलें. आप प्रतिलिपि/नीचे से पेस्ट कर सकते हैं.
  • "Formatcurrency में सक्षम बनाता है टेम्पलेट परिभाषा के बाहर कुछ mumbo जंबो जोड़ें" काम करने के लिए टेम्पलेट. (आप बता सकते हैं कि मैं XSL पर एक कमजोर हैंडल है).

प्रथम, शीर्ष ItemStyle.xsl के निकट, इस पंक्ति में जोड़ें:

  <!-- कुछ mumbo जंबो कि अमेरिका को प्रदर्शित करने के लिए हमें सक्षम बनाता है. मुद्रा. -->
  <xsl:दशमलव स्वरूप नाम="स्टाफ" अंक="" />

  <xsl:टेम्पलेट नाम="डिफ़ॉल्ट" मैच="*" मोड="itemstyle">

ध्यान दें कि मैं यह सीधे पहले जोड़ा गया <xsl:टेम्पलेट का नाम = "डिफ़ॉल्ट" …> परिभाषा.

अगले, करने के लिए हमारी ग्रिड टेम्पलेट पर वापस जाना. पूरे ग्रिड टेम्पलेट नीचे दिए गए कोड के साथ बदलें. यह अच्छी तरह से टिप्पणी की है, लेकिन मुझे ईमेल या मेरे ब्लॉग पर टिप्पणियाँ छोड़ यदि आपके कोई प्रश्न हैं करने में संकोच नहीं करते.

  <xsl:टेम्पलेट नाम="ग्रिड" मैच="पंक्ति[@Style 'ग्रिड' =]" मोड="itemstyle">

    <!--
      ContentMain.xsl CurPos और आखिरी गुजरता.
      हम इन सशर्त खुले फेंकना करने के लिए उपयोग करें और समापन <तालिका> टैग.
    -->
    <xsl:परम नाम="CurPos" />
    <xsl:परम नाम="अंतिम" />

    <!-- निम्न चर से मानक ItemStyle.xsl unmodified हैं -->
    <xsl:चर नाम="SafeImageUrl">
      <xsl:कॉल-टेम्पलेट नाम="OuterTemplate.GetSafeStaticUrl">
        <xsl:परम के साथ नाम="UrlColumnName" का चयन करें="'ImageUrl'"/>
      </xsl:कॉल-टेम्पलेट>
    </xsl:चर>
    <xsl:चर नाम="SafeLinkUrl">
      <xsl:कॉल-टेम्पलेट नाम="OuterTemplate.GetSafeLink">
        <xsl:परम के साथ नाम="UrlColumnName" का चयन करें="'LinkUrl'"/>
      </xsl:कॉल-टेम्पलेट>
    </xsl:चर>
    <xsl:चर नाम="DisplayTitle">
      <xsl:कॉल-टेम्पलेट नाम="OuterTemplate.GetTitle">
        <xsl:परम के साथ नाम="शीर्षक" का चयन करें="@Title"/>
        <xsl:परम के साथ नाम="UrlColumnName" का चयन करें="'LinkUrl'"/>
      </xsl:कॉल-टेम्पलेट>
    </xsl:चर>
    <xsl:चर नाम="LinkTarget">
      <xsl:अगर टेस्ट="@OpenInNewWindow = 'सच'" >_ blank</xsl:अगर>
    </xsl:चर>

    <!--
      यहाँ हम एक चर को परिभाषित, "tableStart".  यह होता है कि हम के रूप में अच्छी तरह से तालिका में स्तंभ लेबल के उद्घाटन को परिभाषित करने के लिए उपयोग HTML.  ध्यान दें कि यदि CurPos = 1, यह भी शामिल है में एक CDATA टैग HTML.
      अन्यथा, यह खाली हो जाएगा.

      हर बार जब ItemStyle ContentQueryMain.xsl के द्वारा कहा जाता है tableStart का मान emited है.
    -->
    <xsl:चर नाम="tableStart">
      <xsl:अगर टेस्ट="$CurPos = 1">
        <![CDATA[
        <तालिका बॉर्डर = 1>
          <tr bgcolor = "ब्लू">
            <td><फ़ॉन्ट रंग "व्हाइट" =><ख>प्रोजेक्ट का नाम</ख></फ़ॉन्ट></td>
            <टीडी संरेखित करें = "सही"><फ़ॉन्ट रंग "व्हाइट" =><ख>पूर्ण दिनांक</ख></फ़ॉन्ट></td>
            <टीडी संरेखित करें = "सही"><फ़ॉन्ट रंग "व्हाइट" =><ख>बजट</ख></फ़ॉन्ट></td>
            <टीडी संरेखित करें = "सही"><फ़ॉन्ट रंग "व्हाइट" =><ख>वास्तविक व्यय</ख></फ़ॉन्ट></td>
            <td><फ़ॉन्ट रंग "व्हाइट" =><ख>समग्र स्थिति</ख></फ़ॉन्ट></td>
          </टी. आर.>
        ]]>
      </xsl:अगर>
    </xsl:चर>

    <!--
      एक और चर, tableEnd बस को परिभाषित करता है समापन टेबल टैग.

      TableStart साथ के रूप में, यह हमेशा emited है.  यही कारण है इसकी कीमत सशर्त चाहे हम अंतिम पंक्ति ContentQueryMain.xsl द्वारा पारित किया गया है पर आधारित सौंपा है.
    -->
    <xsl:चर नाम="tableEnd">
      <xsl:अगर टेस्ट="$CurPos = $Last">
        <![CDATA[ </तालिका> ]]>
      </xsl:अगर>
    </xsl:चर>

    <!--
      हमेशा tableStart की सामग्री का उत्सर्जन.  यदि यह पहली पंक्ति हमारे लिए ContentQueryMain.xsl द्वारा पारित नहीं है, तो हम जानते हैं कि इसका मान रिक्त हो जाएगा.

      आउटपुट से बचने क्योंकि अक्षम करें जब tableStart इसे खाली नहीं, यह भी शामिल है कि हम ब्राउज़र के द्वारा रेंडर किया जा करने के लिए चाहते हैं वास्तविक HTML.  यदि हम बता नहीं अक्षम करने के लिए XSL पार्सर उत्पादन से बचने, यह सामान की तरह उत्पन्न होगा"&लेफ्टिनेंट;तालिका&जी. टी.;" के बजाय"<तालिका>".
    -->
    <xsl:मान का का चयन करें="$tableStart" अक्षम करें आउटपुट बचने="हाँ"/>


    <टी. आर.>
      <!--
      पी:Project_x005F_x0020_Name P:Project_x005F_x0020_End_x005F_x0020_Date P:Project_x005F_x0020_Budget P:Project_x005F_x0020_Expenses P:Project_x005F_x0020_Status
      -->
      <td>
        <xsl:मान का का चयन करें="@Project_x005F_x0020_Name"/>
      </td>

      <td संरेखित करें="दाईं ओर">
        <xsl:मान का का चयन करें="@Project_x005F_x0020_End_x005F_x0020_Date"/>
      </td>

      <td संरेखित करें="दाईं ओर">
        <xsl:कॉल-टेम्पलेट नाम="formatcurrency">
          <xsl:परम के साथ नाम="मान" 
का चयन करें="@Project_x005F_x0020_Budget"></xsl:परम के साथ> </xsl:कॉल-टेम्पलेट> </td> <td संरेखित करें="दाईं ओर"> <xsl:कॉल-टेम्पलेट नाम="formatcurrency"> <xsl:परम के साथ नाम="मान" का चयन करें="@Project_x005F_x0020_Expenses">
</xsl:परम के साथ> </xsl:कॉल-टेम्पलेट> </td> <td> <xsl:मान का का चयन करें="@Project_x005F_x0020_Status"/> </td> <!-- निम्न सभी टिप्पणी है बाहर बातों को स्पष्ट करने के लिए. हालांकि, इसे वापस लाने के लिए और में यह सामान एक <td> उसके प्रभाव को देखने के लिए. --> <!-- <div id = "linkitem" वर्ग = "" आइटम> <xsl:यदि परीक्षण "स्ट्रिंग लंबाई =($SafeImageUrl) != 0"> <div कक्षा "छवि-क्षेत्र-बाएँ" => <एक href = "{$SafeLinkUrl}" लक्ष्य = "{$LinkTarget}"> <आइएमजी कक्षा "छवि-निश्चित-चौड़ाई =" src = "{$SafeImageUrl}"
alt = "{@ImageUrlAltText}"/> </एक> </div> </xsl:अगर> <div वर्ग = "लिंक-आइटम"> <xsl:कॉल-टेम्पलेट
name="OuterTemplate.CallPresenceStatusIconTemplate"/> <एक href = "{$SafeLinkUrl}"
लक्ष्य = "{$LinkTarget}" शीर्षक = "{@LinkToolTip}"> <xsl:मान का चयन करें "$DisxslyTitle" = /> </एक> <div वर्ग = "विवरण"> <xsl:select="@Description मान का" /> </div> </div> </div>
--> </टी. आर.> <!-- समापन का उत्सर्जन टेबल टैग. अगर हम अंतिम पंक्ति पर नहीं कर रहे हैं, इस रिक्त हो जाएगा. --> <xsl:मान का का चयन करें="$tableEnd" अक्षम करें आउटपुट बचने="हाँ"/> </xsl:टेम्पलेट> <xsl:टेम्पलेट नाम="formatcurrency"> <xsl:परम नाम="मान" का चयन करें="0" /> <xsl:मान का का चयन करें='संख्या स्वरूप($मान, "$DDD,DDD,DDD.डीडी", "कर्मचारियों")' /> </xsl:टेम्पलेट>

22 पर विचार "सामग्री क्वेरी वेब पार्ट परिणाम प्रदर्शित ग्रिड में / तालिका

  1. Andreas

    आह… यह है क्योंकि मैं मेरी सूची शैली अलग नाम दिया है और ContentQueryMain.xsl में यह "शैली" के लिए जाँच करता है कि पता ही नहीं था:

    <xsl:जब test="@Style='NameOfMyStyle' '>

    उस का नाम के साथ यह काम किया. 🙂

  2. Andreas

    यह लगभग मेरे लिए काम किया: मैं उत्पादन करने के लिए प्रबंधित करें </तालिका> टैग अंत में सही ढंग से, लेकिन प्रारंभिक टैग लापता है. ऐसा लगता है कि परीक्षण = "$CurPos = 1" सच्चे वापस नहीं करता है. लेकिन क्यों?

  3. आनंद सिंह रावत

    महान पोस्ट. मैं सभी उपरोक्त बातें किया है पॉल. मैं एक प्रश्न है, कैसे कर सकते हैं मुझे प्राप्त "कुल वास्तविक Expences का योग" या दो स्तंभों के मूल्य का योग.

  4. लिसा

    आप बनाने कस्टम ContentQueryMain और ItemStyle xsl फ़ाइलों के साथ किसी भी काम किया है? कारण मैं पूछ नहीं कि मैं किसी भी पैच या उन्नयन के साथ अधिलेखित किया जा रहा मेरी कस्टम शैलियों के बारे में चिंता करने के लिए चाहता है. आप उदाहरण क्या है? मैंने कोशिश की है ContentQueryMain.xsl के समान एक प्रतिलिपि बनाना और उस नए कस्टम प्रतिलिपि शैली लायब्रेरी को अपलोड करने के. जब यह xsl फ़ाइल का संदर्भ. webpart MainXslLink संपत्ति में डाल, मैं मिलता 401 अधिकृत नहीं. एक प्रकाशित संस्करण कस्टम xsl फ़ाइल है और हर कोई इसे पढ़ने की पहुँच प्राप्त है.

  5. ग्रेग Sheridan

    नमस्ते, यह एक सच में मददगार पोस्टिंग थी. मैं यह सब काम कर रहे है, और इसलिए यह समूह भी कार्यान्वित माइक ब्राउन के परिवर्तन
    जो कुछ भी द्वारा तालिका के अंदर परिणाम मैं CQWB गुण में समूह द्वारा पैरामीटर के रूप में चयन.
    मैं भी एक कड़ी शीर्षक बनाया, तो यह अच्छी तरह से काम करता है. मैं अभी भी एक समस्या है, हालांकि. मैं साइट नाम से परिणाम समूहीकृत कर रहा हूँ. तालिका के अंदर, यह उन्हें अच्छी तरह से समूह, और यह महान लग रहा है, लेकिन यह अभी भी सभी समूह बाहर मुद्रण है
    नाम(मेरे मामले में साइट के नाम) तालिका के ऊपर. किसी को पता है कि इनमें से छुटकारा पाने के लिए?
    धन्यवाद,
    ग्रेग

  6. कोई नाम नहीं

    अच्छा लेख है. मैं सूची के स्रोत कोड का विश्लेषण करके डिफ़ॉल्ट Sharepoint सूचियाँ के देखो मेरी मेज देने में कामयाब. यहाँ मुख्य HTML ब्लॉक ItemStyle में फिट करने के लिए आवश्यक हैं:

    <तालिका चौड़ाई = "100%" वर्ग = "एमएस-listviewtable" सीमा 0 cellspacing = 0 cellpadding = 1 dir = = "कोई नहीं">

    <!–शीर्ष लेख–>
    <TR वर्ग = "एमएस-viewheadertr" VALIGN = शीर्ष>
    <गु न लपेटे गुंजाइश "कर्नल =" वर्ग = "एमएस-vh2"><div शैली = "चौड़ाई =:100%;स्थिति:रिश्तेदार;बाईं ओर:0;शीर्ष:0;">
    <तालिका शैली = "चौड़ाई =:100%;" CtxNum = "1" ऊंचाई = "100%" cellspacing 1 cellpadding = 0 वर्ग = = "एमएस-unselectedtitle">
    <टी. आर.>
    <टीडी चौड़ाई = "100%" वर्ग = "ms-vb" न लपेटे>
    Texte डु titre आईसीआई

    </टीडी>
    <टीडी शैली "स्थिति =:निरपेक्ष;">
    </टीडी>
    </टी. आर.>
    </तालिका></div>
    </गु>

    <!–सभी शीर्ष लेख कक्ष के लिए दोहराएँ–>
    </टी. आर.>

    <!– तालिका डेटा –>
    <TR वर्ग = "">
    <!–डेटा स्तंभ, हाइपरलिंक के साथ पहली बार एक के लिए पौलुस का कोड का उपयोग करें –>
    <टीडी वर्ग = "एमएस-vb2">डेटा यहाँ</टीडी>

    <!–रिक्त स्तंभ–>
    <टीडी वर्ग = "एमएस-vb2">
    <स्पैन dir = कोई नहीं></काल><
    /टीडी>

    <!–दिनांक स्तंभ–>
    <टीडी वर्ग = "एमएस-vb2">
    <NOBR>11/12/2008</NOBR>
    </टीडी>
    </टी. आर.>

    <!–***वैकल्पिक पंक्ति – वैकल्पिक वर्ग है modulo 2 वर्तमान पंक्ति के आधार पर सम्मिलित करेगा एक नई XSL चर का उपयोग करें–>
    <TR वर्ग = "ms-बारी">

    </टी. आर.>
    </तालिका>

  7. माइक ब्राउन
    Zoltan,
    मैं आप के रूप में एक ही मुद्दे पर काम कर रहा था. मैं मेरे सभी आइटम्स सिर्फ एक lits के बजाय किसी समूहीकृत तरीके से में प्रदर्शित करना चाहता था. यहाँ है कैसे मैं इसे हासिल किया.
    ContentQueryMain.xsl
    <xsl:जब test="@Style='Grid' '>
    <xsl:लागू टेम्पलेट्स का चयन करें = "।" मोड = "itemstyle">
    <xsl:के साथ परम का नाम "CurPos =" का चयन करें "$CurPosition =" />
    <xsl:के साथ परम का नाम = "अंतिम" का चयन करें "$LastRow =" />
    <!–जोड़ने के एक नए समूह का संकेत पैरामीटर में पारित करने के लिए इस नई धारा शुरू हो गया है–>
    <xsl:के साथ परम का नाम "StartNewGroup =" select="@__begingroup" />
    </xsl:लागू टेम्पलेट्स>
    </xsl:कब>
    ItemStyle.xsl
    अपने पैरामीटर जोड़ें
    <xsl:परम नाम "StartNewGroup" = />
    डेटा की पहली पंक्ति के रूप में यह पाठ जोड़ें
    <xsl:चुनें>
    <xsl:जब परीक्षण = "$StartNewGroup = 'सच' '>
    <टी. आर.>
    <td >
    <xsl:कॉल-टेम्पलेट name="OuterTemplate.GetGroupName">
    <xsl:के साथ परम का नाम "समूहनाम =" select="@*[नाम()$Group =]"/>
    <xsl:परम के साथ नाम "GroupType =" का चयन करें "$GroupType" = />
    </xsl:कॉल-टेम्पलेट>
    </td>
    </टी. आर.>
    </xsl:कब>
    <xsl:अन्यथा>
    </xsl:अन्यथा>
    </xsl:चुनें>
    यह अपने ग्रिड में आपकी समूहीकरण मुद्दे का ख्याल रखना चाहिए. प्रत्येक समूह अब एक नई पंक्ति समूह का नाम का संकेत के साथ शुरू हो जाएगा. मेरा समाधान में मैं वास्तव में एक खाली जोड़ा गया <टीडी /> यह रूप में अच्छी तरह से इतनी इंडेंट करने के लिए डेटा में समूहीकृत किया जा रहा बहुत बेहतर बाहर खड़ा था.
    Site1
    datacolumn1 datacolumn2 datacolumn3 आदि

    datacolumn1 datacolumn2 datacolumn3 आदि
    Site2
    datacolumn1 datacolumn2 datacolumn3 आदि
    Site3

    datacolumn1 datacolumn2 datacolumn3 आदि

    datacolumn1 datacolumn2 datacolumn3 आदि
    आदि.
  8. Zoltan
    नमस्ते पॉल,
    पोस्ट के लिए धन्यवाद, मैं एक ग्रिड में मेरी क्वेरी परिणामों का आयोजन करने में कामयाब, जो बहुत ही उपयोगी है. हालांकि, मैं आगे जाना चाहिए और साइटों के आधार पर मेरी परिणाम को समूहीकृत. पल में, साइट नाम पहले सूचीबद्ध हैं, और फिर वहाँ केवल एक बड़ी ग्रिड से अलग अलग साइटों की सभी पंक्तियाँ सभा है. कुछ इस तरह:
    Site1 नाम
    Site2 नाम
    सभी साइटों के लिए ग्रिड में डेटा
    किसी भी विचारों क्या मैं मेरे डेटा इस रूप में प्राप्त करने के लिए संशोधित करना चाहिए पर:
    Site1 नाम
    Site1 के लिए ग्रिड में डेटा
    Site2 नाम
    Site2 के लिए ग्रिड में डेटा
    अग्रिम धन्यवाद,
    Zoltan
  9. पियरे Joubert
    शानदार पोस्ट, मैं था मेरी समस्या हल कर दी.
    मेरी ही मुद्दा AssignedTo फ़ील्ड प्रदर्शित कर रहा है, मैं इसे के साथ "उपयोगकर्ता कॉन्फ़िगर करें" फ़ील्ड प्रकार और आयातित webpart तो निम्न त्रुटि प्रदर्शित करता है:
    "इस वेब पार्ट में प्रदर्शित करने के लिए डेटा पुन: प्राप्त करने में त्रुटि हुई।"
    मैं सभी संभव फ़ील्ड प्रकार का उपयोग करने की कोशिश की है, कुछ के साथ के दूसरे कि "उपयोगकर्ता" यह त्रुटि को प्रदर्शित नहीं करता है, लेकिन यह कुछ भी क्षेत्र में प्रदर्शित नहीं करता है. उपयोगकर्ता फ़ील्ड प्रकार सही है, तो मैं मान रहा हूँ, तो मैं एक सेटिंग गुम होना चाहिए कहीं.
    इस पर कोई विचार?
    सादर अभिवादन
    पियरे
  10. Charftong
    महान पोस्ट!!! बहुत बहुत उपयोगी.
    त्वरित सवाल, आप उपस्थिति के साथ AssignedTo या ModifiedBy फ़ील्ड् स प्रदर्शित करने पर कोई भी काम किया है? किसी कारण के लिए, जब भी मैं करने के लिए असाइन किया गया फ़ील्ड CQWP में dipslay करने के लिए प्रयास करें, यह हमेशा के साथ दिखाता है एक उदाहरण के रूप में "203;#Charf टोंग". मैं एक तरह से इस के आसपास नहीं ढूँढ सकता.
  11. जेनिफर डेविस
    पॉल
    महान लेख, धन्यवाद. मैं कुछ बहुत ही इसी तरह कर रहा हूँ, लेकिन परियोजना स्थल के बजाय सूची में आइटम के लिए एक लिंक प्रदर्शित करना चाहते हैं. उदाहरण के लिए, हमारे पास है 25 शीर्ष स्तरीय परियोजना साइटों और प्रत्येक सामग्री प्रकार के साथ एक सूची होते हैं. ये परियोजना का नाम हैं, प्रभाग, विवरण. मैं इस डेटा खींच और सफल रहा है सिवाय इसके कि द्वारा डिफ़ॉल्ट URL मुझे आइटम प्रविष्टि सूची में लेता है और मैं वास्तव में यह मेरे प्रोजेक्ट साइट के लिए ले करने के लिए की आवश्यकता के लिए सामग्री क्वेरी वेब पार्ट का उपयोग करना चाहते हैं. आप मुझे किसी भी सलाह दे सकते हैं?
    धन्यवाद
    जेन
  12. Kieran लिखा था:

    हाय पॉल,

    जब xml/xsl और सामग्री क्वेरी वेब पार्ट के साथ कार्य करना, आप किसी भी अच्छे तरीके से अपने xslt को स्वरूपित करने के लिए मिल गया है? परिवर्तन करें और डिजाइन का परीक्षण करने की कोशिश कर रहा में एक सही दर्द साबित करना है एक * * सिर्फ एक पाठ संपादक का उपयोग कर…

    शुभकामनाएँ

  13. Michael Dipay
    मुद्दे के बारे में मैं कहाँ यह ग्रिड दृश्य से छवियों को प्रदर्शित नहीं करता, लेकिन इसके बजाय पाठ प्रदर्शित करता है पिछली बार हो रहा था (https://myweb.com/Marketing/images/icn-order.gif,). मैं यह SharePoint डिज़ाइनर की मदद के साथ कस्टम दृश्य बनाने और कस्टम स्तंभों मैं प्रदर्शित करने के लिए इच्छित का चयन करने से हल करने के लिए प्रबंधित करें. मुझे पता चला कि छवियाँ स्तंभ प्रकार यूआरएल के रूप में दिखाया गया हैं(अल्पविराम) (जैसे. https://myweb.com/Marketing/images/icn-order.gif,). वर्तमान स्वरूप पाठ है, तो मैं इसे आम xsl से चित्र को बदलने के लिए:मान की कार्य-> चित्र के रूप में स्वरूप. यह परिवर्तन प्रदर्शित करने के लिए कस्टम छवियाँ है कि मैं दिखाना चाहता था. मैं छवि दिखाने के लिए कोड की नकल की ( <आइएमजी बॉर्डर ="0" src = "{substring-से पहले(@IcnOrder, ‘, ‘)}" /> ) और मैं इस @PICTURECOLUMNNAME के लिए कोड परिवर्तित करने के लिए है ItemStyle.xsl फ़ाइल में <आइएमजी बॉर्डर ="0" src = "{substring-से पहले(@IcnOrder, ‘, ‘)}" /> . तब इसे सहेजें. अब मेरी तालिका ग्रिड परिणाम पाठ के रूप में अच्छी तरह के रूप में कस्टम छवि को दिखाने के लिए स्तंभ प्रकार.
  14. हेलेन
    हाय पॉल,
    महान लेख के लिए धन्यवाद!
    आप सशर्त स्वरूपण का उल्लेख – "आप भी सशर्त स्वरूपण में डाल सकते हैं, परियोजनाओं जो लाल में अपने बजट से अधिक हो गई है प्रदर्शित करने के जैसे।" तुम एक कोड उदाहरण कि के लिए के लिए होता है?
    एक बार फिर धन्यवाद!
    हेलेन
  15. Michael Dipay
    हाय पॉल,
    यह एक महान लेख और उम्मीद के रूप में एक ही परिणाम उत्पन्न करने में सक्षम था. मैं एक ग्रिड में उसके स्तंभों में से एक के रूप में एक छवि को दिखाने के लिए की आवश्यकता है. यह छवि ग्रिड पर प्रदर्शित नहीं है, लेकिन इसके बजाय छवि के साथ करने के लिए यूआरएल दिखाता है एक (,) अंत में अल्पविराम.
    (जैसे. https://myweb.com/Marketing/images/icn-order.gif, )
    मैं CommonViewFields फ़ील्ड प्रकार में छवि या चित्र का उपयोग करना चाहिए? (जैसे. InternalColumnName, छवि)
    धन्यवाद,
    माइक
  16. Saji Ijiyemi

    आपकी पोस्ट ठीक है मैं क्या देख रहा था. हालांकि, मैं यह काम करने के लिए प्राप्त नहीं कर सकता.

    मैं दस्तावेज़ों में विभिन्न डॉक्टर संग्रहित है. पुस्तकालयों पर एक कस्टम वर्ग स्तंभ का उपयोग कर वर्गीकृत (विकल्प: 1 या 2. मैं CQWP उनके वर्ग पर आधारित इन दस्तावेज़ों को दिखाने के लिए उपयोग करना चाहते हैं.
    मैं CQWP को जोड़ने के लिए सक्षम किया गया, यह एसपीडी को निर्यात करें, itemStyle.xls कस्टम fileds सूची दृश्य में दिखाने के लिए कॉन्फ़िगर करें. फिर भी, मैं सफलतापूर्वक नहीं लागू क्या आप यहां का वर्णन सकता है.

    इन स्तंभों मुझे मेरी CQWP में दिखाने के लिए चाहते हैं:

    फ़ाइल प्रकार (आइकन दिखाएँ करने के लिए)
    फ़ाइल शीर्षक
    अंतिम संशोधन दिनांक
    जो द्वारा संशोधित
    इस पर चेक आउट
    में टिप्पणी की जाँच की

    मैं वर्तमान में एक सूची प्रारूप में परिणाम है. मैं यह एक talble प्रारूप करने के लिए कैसे परिवर्तित करूँ.

    धन्यवाद.

    Saji

करने के लिए एक उत्तर दें छोड़ दो पियरे Joubert उत्तर रद्द करे

आपका ईमेल पता प्रकाशित नहीं किया जाएगा. अपेक्षित स्थानों को रेखांकित कर दिया गया है *