无止境地嵌套 <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"的原因。  这听起来很喜欢我。净额相当于"我有没有嘴, 和我必须尖叫.”

</结束>

订阅我的博客.

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

便利的参考: KeywordQuery 搜索的默认结果

当您调用执行() KeywordQuery 方法, 您可以创建基于 ResultType.RelevantResults 的 ResultTable。  此代码片段说明了我的意思是:

ResultTableCollection resultsTableCollection = myKeywordQuery.Execute();

ResultTable searchResultsTable = resultsTableCollection[ResultType.RelevantResults];

生成的表将有以下各列的信息: 

作业标识符
排名
标题
作者
大小
路径
说明

SiteName
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> 儿童。  然后,它循环访问所有这一切。  迷人.

我大概可以提高 it 效率, 但我永远不会是那种解决 π 的 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 Count ="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