無止境地嵌套 <div> 標記和 jQuery

這似乎是一個古怪的話題, 我不確定這的確值得有關的博客, 但是,從未停止過我, 所以在這裡我們去 微笑

我正在那裡我揪一些資料從搜索專案, 打包成一條 XML 消息,然後該 XML 是最終轉換為 XSLT 通過 HTML。  有很多的 jQuery 涉及, 其中一位實現一些定位字元的功能。  當您按一下某個選項卡上 (真的, 一 <div>), jQuery 調用.hide() 和.show() 對各種 div (初始頁面載入下載的所有內容,所以在這種情況下有沒有回發).

一群小時前, 選項卡切換邏輯開始運行不穩定,它不會顯示我的選項卡中的一個。  我最終跟蹤它的事實,ie 瀏覽器 (至少) 原以為, <div> 到目前為止的嵌套標籤, 遠比預期更深。將顯示開發人員工具列:

-<div id ="Tab1Content">
  -<div>
    -<div>
      -<div id ="Tab2Content">
        -<div>
           …………………………
                   </div>  <— — 終於呈現它一路下來被關閉!

所以, 如果我做了 $("#"Tab1Content).隱藏(), 我還會隱藏前臺,我可能永遠不會告訴前臺是否我還沒給看標籤頁 1。  複製,並且的代碼粘貼到 visual studio 和它很好地顯示所有 div 的襯砌起來的, 就像他們應該做的事情, 這樣看:

-<div id ="Tab1Content">
  +<div>
  +<div>
-<div id ="Tab2Content">
  +<div>
  +<div>

我的頭靠在牆上打了一會兒,並注意到在實際的 HTML 代碼產生大量的空 <div> 標籤, 像:

<正文>

  <div id ="Tab1Content">

    <div id ="第一行"/>
    <div id ="行 2"/>

  </div>

  <div id ="Tab2Content">

    <div id ="第一行"/>
    <div id ="行 2"/>

  </div>

</正文>

(以上是過於簡單化的 waaaaaaaaaaaay。  空的 div 標籤都是完全有效. 一些我 <div> 標記是內容的完整, 但更多的不是。  我認識到,那我 <xsl:為每個> 指令發出短型 div 標籤時 xsl:對於每個才 ' 找到的任何資料。  被迫輸出的 HTML 注釋, 如圖所示:

image

 

畢竟這樣做, 所有 div 的很好地都排隊和我選項卡切換開始工作.

如往常一樣, 我希望這將有助於在必要時有人.

</結束>

訂閱我的博客.

跟我在 Twitter 上 http://www.twitter.com/pagalvin

快速修復: "內容類別型名稱 '$ 資源:ReportServerResources … 不能包含 … 特殊字元”

我花了一些時間來清理 SharePoint 2010 網站和清理問題之一涉及腐敗 / 不正確地安裝 SQL 伺服器報表服務問題。  這個問題引起我的一個同事試圖將網站另存為範本,然後創建時創建一個基於該範本的新網站。  保存操作正常工作, 但當她試圖創建新網站, SharePoint 顯示下面的錯誤訊息:

錯誤

內容類型名稱 '$ 資源:ReportServerResources,DataSourceContentTypeName;' 不能包含: \ / : * ? “ # % < > { } | ~ & , 兩個連續的句點 (..), 或特殊字元,如一個選項卡.

這裡是一個螢幕上限:

 

image

在網站中了看看的內容類型,併發現了這個:

image

這些內容類型都清楚不健康.

這個問題似乎在互聯網絡上很多來,似乎也並不是如何解決它的單一共識。  我找到了一個很方便的表,不良內容類型名稱映射到這裡好內容類型名稱: http://social.technet.microsoft.com/Forums/en-ZA/sharepoint2010programming/thread/cb03e866-8184-4943-acfe-cafffa1b8b7a.  我這上面手動更新它們:

image

(BrightStarr 在名稱中是可選的明顯, 但它不會傷害 微笑 )

這讓我來創建新的範本並沒有破壞任何其他網站上, 其中包括一些 PerformancePoint 伺服器的東西完全不同的一群人正在處理的問題。  當時我能夠在範本上創建一個新的網站。  成功!

我不確定這是 100% 解決方案, 但這讓我和大家都涉及過去這惱人的錯誤。  如果找到了任何新的東西, 我會發佈更新。  我緊張源于這一事實這些名稱不應該是錯放在第一位,通過固定的顯示名稱, 不,我要修理的內部名稱。 

</結束>

訂閱我的博客.

跟我在 Twitter 上 http://www.twitter.com/pagalvin

原因之一為"此故障的創建者不指定的原因。”

我一直在做很多工作與 SharePoint 搜索最近和專門的 KeywordQuery 類, 屬性和方法.

如果您想要的結果集返回嫌犯之外的結果 (請看這裡), 您將其添加到 SelectedProperties 集合, 如在:

myKeywordQuery.SelectProperties.Add(""xyzzy);

很多的感謝和對這頂帽子的提示 寇里 · 羅斯這很有説明的博客 (http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2008/02/19/how-to-use-the-moss-enterprise-search-keywordquery-class.aspx)

以我為例, "xyzzy"並不是實際託管的屬性。  當我添加到 SelectedProperties 無論如何, SharePoint 扔我最喜歡的一個曾經運行時異常:

此故障的建立者確實不指定一個理由。

我特別喜歡資本"R"的原因。  這聽起來對我來說像.net 等效于"我有沒有嘴, 和我必須尖叫.”

</結束>

訂閱我的博客.

跟我在 Twitter 上 http://www.twitter.com/pagalvin

便利的參考: KeywordQuery 搜索的預設結果

當您調用執行() KeywordQuery 方法, 您可以創建基於 ResultType.RelevantResults 的 ResultTable。  此代碼片段說明了我的意思是:

ResultTableCollection resultsTableCollection = myKeywordQuery.Execute();

ResultTable searchResultsTable = resultsTableCollection[ResultType.RelevantResults];

生成的表將有以下各列的資訊: 

作業識別碼
排名
標題
作者
大小
路徑
說明
寫入
網站名稱
CollapsingStatus
HitHighlightedSummary
HitHighlightedProperties
ContentClass
IsDocument
PictureThumbnailURL
ServerRedirectedURL

我從 SharePoint 派生此清單 2010 環境, 企業版。  希望它能方便給某人在未來.

</結束>

訂閱我的博客.

跟我在 Twitter 上 http://www.twitter.com/pagalvin

其中一個原因: "提取解決方案中的 cab 檔失敗”

Visual studio web 部件上工作時專案今日 (星期三), 我做了一些檔作為部署過程的一部分被放入的 _layouts 資料夾中次要再 org. 具體, 我改名.js 檔從"TypeAhead.js"到"TypeAhead(老)."js  我打算將其刪除作為其繼任者的"TypeAhead.js"證明是正確的。  它看起來像這樣:

image

這立即引起 visual studio 的問題,當我想要將專案部署:

在 '添加解決方案' 的部署步驟中發生錯誤: 提取解決方案中的 cab 檔失敗.

事實證明你不應該把一個括弧中檔的名稱。  我刪除了 parens,解決了問題.

</結束>

訂閱我的博客.

跟我在 Twitter 上 http://www.twitter.com/pagalvin

然而更多的 jQuery–調整大小圖像示例

我從用戶端的舊供應商那裡繼承了一個 web 部件,它有一個圖像的大小問題。  圖片應該是 60 歲×50 但由於一些奇怪的原因, 原始供應商將他們被迫 42×42, 因此,他們看擠壓:

 

良好的形象

壞形象

這裡是標記 (某種程度上簡化):

<表類 =' 擴展 outlook'>
  <thead>
    <tr>
      <th  寬度 = 100′>3 星期二</th>
    </tr>
  </thead>

  <tbody>
    <tr 類 = '預測'>
      <td 寬度 = 100′>
        <ul>
          <李班 = '高'>高: 72&二甘醇;F</李>
          <李班 = '低'>低: 44&二甘醇;F</李>
          <李班 = '狀況'>陽光燦爛
            <img src =’
http://deskwx.weatherbug.com/images/Forecast/icons/localized/60×50/en/trans/cond007.png’ 寬度 = 42年’ 高度 = 42年’ 按住 alt =” />
          </李>
        </ul>
      </運輸署>
    </tr>

  </tbody>

</表>

您會注意到儘管 圖像本身的路徑 顯示正確的尺寸 (60×50) 原始供應商迫使它在 42×42.  為什麼?  瘋狂.

不管怎麼說, 我想要快速而輕鬆地解決這個問題,我轉向了 jQuery。  訣竅是要找到相應的所有 <img> 標記。  我不想與任何其他 img 標籤弄髒 (其中有很多).  這位的 jQuery 沒有訣竅:

<腳本類型 ="文本 javascript" src ="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></腳本>

<腳本類型 ="文本/javascript">
     $(文檔).準備好了(功能 () {

         $(' li.condition > img').每個(功能 (索引, 專案)
           
{
             $(專案).css("寬", ""60); 
             $(專案).css("高度", ""50);
            });
     }); // 在文檔載入
</腳本>

這段代碼查找集合 <李> 誰的班是"條件"的標籤, <img> 孩子們。  它然後遍歷所有這一切。  立竿見影.

我大概可以簡化它, 但我永遠不會是那種解決 π 的 unix 傢伙 自 18 數位精度使用 sed 和 awk 和我不是那種,如果 jQuery 傢伙要麼 微笑.

</結束>

訂閱我的博客.

跟我在 Twitter 上 http://www.twitter.com/pagalvin

解析 XML 使用 LINQ

下面是一個簡單的例子,使用 LINQ 解析部分  XML 和甜才能得到, 甜其內屬性.

這裡是我想要解析的 XML:

<?xml 版本 ="1.0" 編碼 ="utf-8" ?>
<DeafultConfigurationSets>
  <PageLayouts>

    <PageLayout 名稱 ="xyzzy">
      <選項卡>
        <選項卡 TabOrder ="1" TabLabel ="x" SharePointContentType ="" AdditionalConstraints ="ac1"/>
        <選項卡 TabOrder ="2" TabLabel ="y" SharePointContentType ="b" AdditionalConstraints ="ac2"/>
      </選項卡>
    </PageLayout>

    <PageLayout 名稱 ="xyzzy2">
      <選項卡>
        <選項卡 TabOrder ="100" TabLabel ="x" SharePointContentType ="" AdditionalConstraints ="ac1"/>
        <選項卡 TabOrder ="101" TabLabel ="y" SharePointContentType ="b" AdditionalConstraints ="ac2"/>
        <選項卡 TabOrder ="103" TabLabel ="z" SharePointContentType ="c" AdditionalConstraints ="ac3"/>
      </選項卡>
    </PageLayout>

  </PageLayouts>
</DeafultConfigurationSets>

我想通過以上的分析建立在運行時的某些選項卡。  我的選項卡取決於頁面的佈局。  如果我的頁面配置的名稱是"xyzzy2",然後我想要的選項卡 100, 101 和 103 (中的選項卡 <PageLayout 名稱 ="xyzzy2">).

這裡是 LINQ 並不管用:

var allTabs =
              從 p 中
                  XElement.Parse(theXmlToParse).
                 
元素(""PageLayouts).
                  元素(""PageLayout)
              在哪裡 (p.Attribute("名稱").Value.Equals(""xyzzy2))
              從 p.Elements m("選項卡").元素("選項卡")
              選擇 m;

          Results.Text = 字串。空;

          foreach (在 allTabs 中的 var aTab)
          {
              Results.Text =
                  "Tab 鍵順序: " + aTab.Attribute(""TabOrder).價值 + " |" +
                  "選項卡標籤: " + aTab.Attribute(""TabLabel).價值 + " | " +
                  "SharePointContentType: " + aTab.Attribute(""SharePointContentType).價值 + " | " +
                  "AdditionalConstraints: " + aTab.Attribute(""AdditionalConstraints).價值 + ""r;
          }

在上面, "theXmlToParse"變數是字串變數, 但您可以使用負載() 如果你喜歡一個流上的方法.

"結果"是一個 web 表單上,當這段代碼執行時的標籤, 它看起來像這樣:

SNAGHTML11cd2e7c

我沒找出如何尚未對結果進行排序, 所以我會把這個未來的博客.

</結束>

訂閱我的博客.

跟我在 Twitter 上 http://www.twitter.com/pagalvin

SharePoint 2010 KeywordQuery 和匿名使用者

我在我的網站進行測試,我一直在開發的搜索 web 部件並沒有很大的驚喜中啟用匿名訪問, 不太理想。  匿名訪問幾乎始終是我的一個挑戰.

在此情況下, 初始搜索並不由於某種原因正在運行。  我應該說它 運行,但它不返回任何結果。  我用的初始顯示的 KeywordQuery.

我做了一個快速搜尋和通過這篇文章"sowmyancs"來相當快: “SharePoint 2010 搜索: 不顯示任何結果為匿名使用者?”  博客條目描述問題從外框中的關鍵字搜索的角度出發,但該行為是類似于礦井 — — 它工作為經過身份驗證的使用者和匿名使用者, 但匿名使用者得不到結果。 

我跟著的指令和爆炸!  它解決了我的問題。  我不知道什麼會有副作用,他們可能是一個問題, 但短期結果是很有説明.

通過博客上按一下:

image

</結束>

訂閱我的博客.

跟我在 Twitter 上 http://www.twitter.com/pagalvin

SharePoint 2010 KeywordQuery 和 HiddenConstraints 屬性

我一直在做的工作一點 KeywordQuery 在 SharePoint 中的物件 2010 與利用 HiddenConstraints 屬性.

我沒有找到任何立即有用的資訊的屬性, 所以,我想我會快速記如何我一直使用它.

據我可以告訴, 這是公園的自動約束添加到查詢中,以便您可以進行排序有並不擔心這件事。  為此, 它是只是另一個關鍵字 (或一組關鍵字) 您可以鍵入在 ui 時你做一個關鍵字搜索的修飾符。  下面是一個示例:

keywordQuery.HiddenConstraints ="範圍:\"Industry"";

您可以添加附加約束與空間的分隔符號.

keywordQuery.HiddenConstraints ="範圍:\"Industry" 防禦";

以上所說的英語, "運行"防禦"尋找關鍵字查詢,況且, 使用"產業"範圍.

這裡是看一看它的另一種方式:

image

我一直在使用它的自訂 web 部件提供上下文相關的自動範圍。  當使用者按一下某個選項卡上,按一下搜尋按鈕, 選項卡決定一個特定的搜尋範圍。  它迄今為止工作.

</結束>

訂閱我的博客.

跟我在 Twitter 上 http://www.twitter.com/pagalvin

示例: XSLT 創建 HTML Href

我已經被最近做了一些 XSL 的東西,並認為我會把一起樣本供我將來參考,也許是我們所有人的價值的 XSLT ers 謀生的互聯.

考慮下麵的 XML:

<FdcSearchTabsCollection 計數 ="2">
  <SearchTab 標籤 ="產業" 排序次序"00"標籤 = ="工業"SearchConstraints ="contenttype:行業" TabID ="831b2a74-98c4-4453-8061-86e2fdb22c63"/>
  <SearchTab 標籤 ="做法" 排序次序 ="01"標籤 ="做法"SearchConstraints ="contenttype:PracticeGroups" TabID ="678e206b-6996-421f-9765-b0558fe1a9c0"/>
</FdcSearchTabsCollection>

下面的 XSL 代碼片斷將生成 hrefs 選項卡排序的的清單:

<xsl:範本匹配 ="FdcSearchTabsCollection" xml:空間 ="維護">
   
    <!– "全" 選項卡 –>
    <a href ="javascript:ViewTab(全部)">查看所有</一>
   
    <!– 每個單獨的選項卡 –>
    <!– 遍歷所有選項卡,並顯示正確  連結. –>
    <xsl:對於每個選擇 ="SearchTab">
      <xsl:排序 select="@SortOrder"/>

      …
      <a href ="javascript:ViewTab(‘{@ TabID}’)"><xsl:值的 select="@Label"/></一>
    </xsl:為每個>

    <br /> 
   

   </xsl:範本>

這裡是什麼它看起來像在 SharePoint 中:

SNAGHTML78aa2cb

 

 

</結束>

訂閱我的博客.

跟我在 Twitter 上 http://www.twitter.com/pagalvin