天道酬勤,学无止境

SharePoint 2010 >> Editing Output HTML >> Issues with page or master page render override

Ok. This is a big one. I'll try and explain my issue but let me know if you need more info.

I would like to alter the HTML that SharePoint 2010 generates. I'm going to use the HTML Agility Pack] which will take a string of HTML among other objects and alter the source.

There are 2 ways of altering the full source in SP.

  1. Using Control Adapters, or Extending Controls I can access the Page, MasterPage or even ContentPlaceHolder render methods, grab the HTML, Alter it and then write it.
  2. Use a HTTP Module with a filter and alter the output stream

Unfortunately there are issues with both of these methods.

Number 2, the filter works good but you have to disable the Output Cache. I can't do this. The sites I brand have massive amounts of traffic. So filters are moot until the SharePoint 2010 team fixes / presents us with a workaround. I read somewhere in my travels they are aware and will be doing something about it.

Number 1 works great. I simply use the following and I can alter the HTML of the page but there is one big problem.

HtmlDocument hd    = new HtmlDocument(); //Agility HTML Object.
StringBuilder sb   = new StringBuilder();
StringWriter sw    = new StringWriter(sb);
HtmlTextWriter htw = new HtmlTextWriter(sw);

//Render Object into HtmlTextWriter
base.Render(htw);

//String to hold the HTML from the StringBuilder of the HtmlTextWriter
string html = sb.ToString();

//Mess with the String here using the Agility HTML Pack

//Write the HTML to the writer
writer.Write(html);

//Done!

This code works great, but SharePoint 2010 is appending data to the writer / or altering controls after the render override for the Page / MasterPage.

When i debug and walk-through and look at the html string it look like the following.

"<html ....  ....</html>"

This is important to note because there is nothing before the first HTML tag. The Opening "<" is in position 0.

But when the HTML ends up in the browser I see the following.

DOMAIN\user<script type="text/javascript">
//<![CDATA[
var _spUserId=1;
//]]>
</script>
<html... 
....</html>

Also the user name is missing from the welcome area in the top right of the ribbon because it's now putting it up before the opening tag.

If I don't assign the writer object anything in the render override the page in the browser just shows everything before the HTML tag. The funny thing is it shouldn't show anything!

If I visit other pages. ANY page that has a list view. All of the items are rendered before tag. It's important to note that it's just the Values, not the html. The HTML for the list items exists where it should down in the list view.

For Example. (Page is "/_layouts/viewlsts.aspx" )

Without the render override.

<html...

...
//The Table where the data should be.
<tr>
    <td class="ms-gb"  colspan="5" style="white-space:nowrap;">
        <h3 class="ms-standardheader">
            &#160; Picture Libraries
        </h3>

    </td>
</tr>

<tr><td class="ms-vb2 ms-viewlsts-noitems" colspan="6">
    There are no picture libraries. To create one, click <b>Create</b> above.
</td></tr>

<tr>
    <td class="ms-gb"  colspan="5" style="white-space:nowrap;">
        <h3 class="ms-standardheader">

            &#160; Lists
        </h3>
    </td>
</tr>

<tr><td class="ms-vb2 ms-viewlsts-noitems" colspan="6">
    There are no lists. To create one, click <b>Create</b> above.
</td></tr>

<tr>

    <td class="ms-gb"  colspan="5" style="white-space:nowrap;">
        <h3 class="ms-standardheader">
            &#160; Discussion Boards
        </h3>
    </td>
</tr>

<tr class="ms-alternatingstrong">
    <td class="ms-vb-icon">

            <a id="viewlistDiscussionBoard" href="/Lists/Discussion%20Board/AllItems.aspx" >

            <img border="0" alt="Discussion Board" src="/_layouts/images/itdisc.png" width="16" height="16" /></a>
    </td>
    <td class="ms-vb2" >
            <a id="viewlistDiscussionBoard" href="/Lists/Discussion%20Board/AllItems.aspx">Discussion Board</a>&#160;
    </td>

    <td class="ms-vb2" width="40%" >
            &#160;
    </td>

    <td class="ms-vb2" width="3%" align="right">
    1
    </td>
    <td class="ms-vb2" width="25%" >
        <nobr>
        3 days ago
        </nobr>
    </td>
</tr>
...</html>

With the render override.

DOMAIN\user<script type="text/javascript">
//<![CDATA[
var _spUserId=1;
//]]>
</script>Document Libraries"viewlistDocumentLibrary""/AnalyticsReports/Forms/AllItems.aspx""Customized Reports""/_layouts/images/itdl.png""viewlistDocumentLibrary""/AnalyticsReports/Forms/AllItems.aspx"Customized ReportsThis Document library has the templates to create Web Analytics custom reports for this site collection04 days ago"viewlistDocumentLibrary""/Style%20Library/Forms/AllItems.aspx""Style Library""/_layouts/images/itdl.png""viewlistDocumentLibrary""/Style%20Library/Forms/AllItems.aspx"Style LibraryUse the style library to store style sheets, such as CSS or XSL files. The style sheets in this gallery can be used by this site or any of its subsites.04 days agoPicture LibrariesThere are no picture libraries. To create one, click <b>Create</b> above.ListsThere are no lists. To create one, click <b>Create</b> above.Discussion Boards"viewlistDiscussionBoard""/Lists/Discussion%20Board/AllItems.aspx""Discussion Board""/_layouts/images/itdisc.png""viewlistDiscussionBoard""/Lists/Discussion%20Board/AllItems.aspx"Discussion Board13 days agoSurveysThere are no surveys. To create one, click <b>Create</b> above.Blog0
<html...

//The Table where the data should be.
...
<tr>
    <td class="ms-gb"  colspan="5" style="white-space:nowrap;">
        <h3 class="ms-standardheader">

            &#160; 
        </h3>
    </td>
</tr>

<tr><td class="ms-vb2 ms-viewlsts-noitems" colspan="6">

</td></tr>

<tr>
    <td class="ms-gb"  colspan="5" style="white-space:nowrap;">
        <h3 class="ms-standardheader">

            &#160; 
        </h3>
    </td>
</tr>

<tr class="ms-alternatingstrong">
    <td class="ms-vb-icon">

            <a id= href= >
            <img border="0" alt= src= width="16" height="16" /></a>
    </td>

    <td class="ms-vb2" >
            <a id= href=></a>&#160;
    </td>

    <td class="ms-vb2" width="40%" >
            &#160;
    </td>
    <td class="ms-vb2" width="3%" align="right">

    </td>
    <td class="ms-vb2" width="25%" >

        <nobr>

        </nobr>
    </td>
</tr>
... </html>

My guess is it has something to do with resource files..

Whatever the case it's obvious that there is some sort of manipulation of the objects after the Page or MasterPage render methods. I just can't find it.

My HTTP Module filter stream has the HTML in the proper place.. So somewhere between the Page render and sending the HTML to the browser there is something going on.

Here are a couple of other people reporting the same issue without any useful responses.

  1. Link 1
  2. Link 2

I would appreciate any insight on this! THANKS!

评论

The problem is caused by something in the page interfering with the outputcache during render, and more specifically the behaviour of the PostCacheSubstitutionTextHelper class. Probably your call to Render above triggers this.

The welcome.asxc control behaves approximately like this (pseudo sequence diagram):

Page Render > Welcome.ascx Render > PersonalActions Render > PostCacheSubstitutionText.Render > PostCacheSubstitutionTextHelper.RenderAndRegisterSubstitutionCallbackHandler (new instance of)PostCacheSubstitutionText.Render(called in delegate and now writes to HtmlTextWriter) > PostCacheSubstitutionTextHelper. RenderAndRegisterSubstitutionCallbackHandler HttpContext.Response.WriteSubstitution(stuffFromNewInstanceOfPostCacheSubstitutionText)

So enough with the sharepoint freakshow and over to the workaround:-)

Try adding this to your welcome.ascx in the hive:

// in bottom of directives in /CONTROLTEMPLATES/Welcome.ascx
<%@ OutputCache Duration="1" VaryByParam="none" %>

Notice that the Duration is set to 1 since 0 is not allowed for user controls. this leaves a theoretical possiblity for failure, but in our scenario it worked.

I ran into this same problem, I was able to workaround the issue by removing this line from the masterpage.

<wssuc:Welcome id="IdWelcome" runat="server">
</wssuc:Welcome>

受限制的 HTML

  • 允许的HTML标签:<a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • 自动断行和分段。
  • 网页和电子邮件地址自动转换为链接。

相关推荐
  • 如何自定义 SharePoint 2010 移动视图(How to customize SharePoint 2010 mobile view)
    问题 我一直在为我的 SP2010 发布门户开发移动视图。 它是面向 Internet 的自定义页面/Web 部件(例如,带有自定义 Web 部件的 http://server/Pages/customPage.aspx)。 该网站有一个自定义母版页。 我的内置移动功能存在以下问题: 欢迎页面。 导航到 http://server/?Mobile=1 会将我重定向到 http://server/_layouts/mobile/mbllists.aspx,它只显示可用的列表/文档库表。 对于我的门户,我想显示一个仪表板,就像我目前为“普通”非移动视图所做的那样。 导航到我的自定义页面之一(例如 http://server/Pages/customPage.aspx?Mobile=1)也会重定向到 http://server/_layouts/mobile/mbllists.aspx。 所以实际上根本没有任何有用的内置移动支持; 只是能够使用移动设备查看列表。 所以我有很多问题,我希望得到一些高级别的帮助。 我的想法是我应该做以下任务: 为移动设备创建单独的母版页弄清楚如何根据“客户端是移动设备吗?”来选择这个母版页。 找出如何防止重定向到 /_layouts/mobile/mbllists.aspx 那么我认为移动网站的运作方式与普通网站类似。 我在正确的轨道上吗? [编辑]
  • 以编程方式编辑 Sharepoint Wiki 内容(Programmatically editing Sharepoint Wiki content)
    问题 我想以编程方式编辑我的 Sharepoint Wiki 内容。 优势之一是自动向 Wiki 环境添加索引。 有没有人能够做到这一点? 语言无关紧要,但要寻找脚本解决方案。 回答1 SharePoint wiki 只是一种特殊类型的文档库。 在尝试这样做时,我遇到了一些奇怪的事情。 SharePoint wiki 页面由模板文件和列表项组成。 当您查看页面时,列表项中的字段将插入到模板文件中。 因此,要更新 wiki 页面,您只需更新列表项中的正确字段。 (顺便说一句,这也意味着您无法像获取普通文档库中的文件一样获取原始模板。到目前为止,我发现获取模板本身的唯一方法是通过 SharePoint Designer 下载它。) 此外,当您以编程方式访问列表项时,SharePoint 会自动呈现 Wiki 内容。 因此,我永远无法获得包含“[[我的链接名称]]”的内容,例如——SharePoint 将始终返回呈现的 HTML,例如: <A class=ms-wikilink href="/MyWikiLibrary/MyLinkName.aspx">My Link Name</A> 不过,通过一些正则表达式工作,您应该能够将其转换回原始 wiki 内容。 回答2 是的。 我已经推出了自己的 Metaweblog API,它以编程方式管理 Sharepoint 2010 和 2007
  • How to customize SharePoint 2010 mobile view
    I am stuck on developing a mobile view for my SP2010 publishing portal. It is Internet-facing with custom pages / web parts (e.g. http://server/Pages/customPage.aspx with custom webparts on it). The site has a custom master page. I am having the following issues with the built-in mobile functionality: The welcome page. Navigating to http://server/?Mobile=1 redirects me to http://server/_layouts/mobile/mbllists.aspx, which just shows a table of lists / document libraries available. For my portal, I want to show a dashboard, just like I currently do for the "normal" non-mobile view. Navigating
  • 共享点维基(Sharepoint Wikis)
    问题 好的,我看到一些帖子提到了一些其他关于不使用 SP wiki 的帖子,因为它们很糟糕。 由于我们正在考虑在SP 中做我们的 wiki,我需要知道为什么我们不应该让 6 名自动化开发人员来记录各种自动化流程中的步骤以及必须不时进行的更改. 回答1 以下是我遇到的一些警告,如果您使用 Sharepoint 以外的 wiki,这些警告将会消失。 Sharepoint 允许您创建大量单独的 wiki,但我建议为所有内容创建一个大型 wiki。 我的公司为每个项目/功能制作了一堆小 wiki,但只有管理员可以创建单独的 wiki,所以如果我想写一些与预定义类别不匹配的内容,我必须找到一个经理首先创建维基。 其次,如果您使用 Sharepoint,请确保您的员工中的每个人都只使用 IE,因为 Firefox 不支持 WYSIWIG 编辑器。 这对大多数 wiki 来说是一件好事,但会使 Sharepoint 中的协作变得困难。 想象一下,整天在一个小盒子里编辑自动生成的 HTML。 第三,尝试在 wiki 中编写您的项目文档并抵制将 Word 文档上传到 Sharepoint 库的诱惑。 把你所有的文档写两次然后看着事情变得越来越不同步是没有意义的。 最后,Sharepoint wiki 中的图像支持很糟糕。 您必须将文件添加到某个位置的文档库并输入 URL。 我的图像永远被删除了
  • ASP.Net 响应筛选器与 SharePoint 2010 发布站点默认值发生冲突(ASP.Net Response Filter Clashing with SharePoint 2010 Publishing Site Defaults)
    问题 我正在调试带有 ASP.NET 响应过滤器的 HttpModule。 这会动态重写呈现的 SharePoint WCM 页面的部分。 发布页面在 Server 2003 和 Server 2008 上的 SP2007 中呈现良好。但是,在 Server 2008 R2 / IIS7 上的 SP2010 B2 中无法呈现等效页面。 ASP.NET 返回以下错误: 缓存后替换与 IIS 集成管道中修改响应缓冲区的模块不兼容。 管道中的本机模块修改了与托管后缓存替换回调关联的 HTTP_DATA_CHUNK 结构,或者托管过滤器修改了响应。 此错误与 KB #2014472 一致。 然而: 在网站集级别为匿名和经过身份验证的访问禁用缓存母版页或布局页上似乎没有任何替换控件 IIS 7 设置都是库存默认值 这发生在例如/pages/default.aspx 上。 我似乎错过了一些与缓存相关的东西......但是什么? 回答1 也许您现在已经找到了合适的解决方案,但我偶然发现了同样的问题。 我能够通过在 IIS 7 中打开站点的“页面和控件”并将Buffer选项设置为False来解决它。 回答2 更新 这是 MS Dev Support 关于这个问题的官方“答案”。 问题: 在 ASP.NET 中用于修改由另一个进程呈现的 HTML 的响应过滤的替代方法是什么: 1.其他进程不能修改
  • 在 SharePoint 2010 中覆盖 X-UA-Compatible 元(overwrite X-UA-Compatible meta in SharePoint 2010)
    问题 我在 SharePoint 2010 上工作,我想对特定页面使用<meta http-equiv="X-UA-Compatible" content="IE=edge"/> 。 母版页将其设置为“IE=8”,这不允许我在 CSS 中使用 box-shadow 例如 我无权访问母版页来更改它。 我还读到,不建议在母版页中更改该元数据,因为它可能会导致日历等其他内容出现问题。 所以我的问题是:有没有办法在一个简单的页面 (.aspx) 中覆盖 X-UA-Compatible 元标记? 回答1 更改其中第二页的兼容模式的方法似乎很有希望: 通过X-UA-compatible HTTP 标头:Web 服务器已通过 HTTP 标头请求旧文档模式。 通过X-UA-compatible元标记:网页开发者使用元标记来指定旧文档模式。 SharePoint 2010 的默认母版页硬编码X-UA-Compatible元标记,并且元标记优先于 HTTP 标头,因此这不能在 HTTP 级别完成。 这给我们留下了第二种选择。 似乎页面上遇到的第一个与X-UA-compatible元标记是 IE 使用的(尽管它在不同的文章中含糊不清,并且在 MSDN 文档中缺失)。 如果您编写 SharePoint UserControl 或 WebPart,您可以添加此代码,例如在Page_Load(
  • ASP.Net Response Filter Clashing with SharePoint 2010 Publishing Site Defaults
    I'm debugging an HttpModule with an ASP.NET response filter. This dynamically rewrites portions of rendered SharePoint WCM pages. The publishing pages render fine in SP2007 on both Server 2003 and Server 2008. However the equivalent pages fail to render in SP2010 B2 on Server 2008 R2 / IIS7. The following error is returned by ASP.NET: Post cache substitution is not compatible with modules in the IIS integrated pipeline that modify the response buffers. Either a native module in the pipeline has modified an HTTP_DATA_CHUNK structure associated with a managed post cache substitution callback, or
  • How to dynamically switch PageLayout and MasterPage of SharePoint Publishing page?
    To improve both the editing and displaying experience of SharePoint WCM Publishing pages I would like to be able to switch to a special set of Masterpage/PageLayout when in edit mode. So in /_catalogs/masterpage I want to have: MyMasterpage.master - masterpage for display mode MyMasterpage-edit.master - masterpage for edit mode, only use if available MyPageLayout.aspx - pagelayout for display mode MyPageLayout-edit.aspx - pagelayout for edit mode, only use if available When I create a new publishing page in the Pages library, I select the MyPageLayout page layout. When rendering the page I
  • How do I use Paul Irish's Conditional comments in a SharePoint 2010 master page
    I want to use Paul Irish's Conditional comments from the Boilerplate HTML template: <!--[if lt IE 7 ]> <html lang="en" class="no-js ie6"> <![endif]--> <!--[if IE 7 ]> <html lang="en" class="no-js ie7"> <![endif]--> <!--[if IE 8 ]> <html lang="en" class="no-js ie8"> <![endif]--> <!--[if IE 9 ]> <html lang="en" class="no-js ie9"> <![endif]--> <!--[if (gt IE 9)|!(IE)]><!--> <html lang="en" class="no-js"> <!--<![endif]--> in a SharePoint 2010 masterpage. I have read 'conditional comments don’t always work so well in SP2010'. (not sure what that means!) The advice is to use: <SharePoint
  • overwrite X-UA-Compatible meta in SharePoint 2010
    I am working on SharePoint 2010 and I want to use <meta http-equiv="X-UA-Compatible" content="IE=edge"/> for a specific page. The master page is setting it to "IE=8" which doesn't allow me to use box-shadow in CSS e.g. I don't have access to the masterpage to change it. Also I have read that changing that meta in master page is not recommended as it might cause issues with other things like calendars or whatever. So my Q is: is there any way of overwriting the X-UA-Compatible meta tag in a simple page (.aspx)?
  • SharePoint 2010 剥离形状和坐标标签(SharePoint 2010 stripping shape and coords from <area> tags)
    问题 我们在 Sharepoint 2007 (WSS) 中有站点,我们正在迁移到 Sharepoint 2010 (Foundation)。 网站上的一个页面包含一张图片,其中链接通过 和 标签映射——即: <map name="name"> <area shape="rect" coords="0,0,10,15" href="http://somesite.com/" /> </map> 当我尝试将上面的标签放入 2010 页面时,它会去掉 shape 和 coords 属性,留下: <map name="name"> <area href="http://somesite.com/" /> </map> 我尝试了一个 Wiki 页面、一个带有内容编辑器 webpart 的 Wiki 页面和一个带有内容编辑器 webpart 的 webpart 页面——所有的结果都是通过编辑 HTML 源添加的。 非常感谢任何帮助或建议 - 谢谢! 回答1 尝试使用 SharePoint Designer +“高级模式”编辑。 回答2 你用哪个浏览器看到这个? 我经历过与您在使用 IE7 的发布站点中描述的相同的事情。 作为通过 IE8 访问同一站点的同一用户,我可以编辑源并保留 Shape 和 Coords 属性。 不太令人满意,因为它很难相信未来的编辑不会破坏页面
  • SharePoint 2010 corev4.css 更改未反映在子网站上(SharePoint 2010 corev4.css changes not reflecting on subsites)
    问题 当我们对 SharePoint 2010 站点根目录中 _themes 文件夹中的 corev4.css 进行更改时,它会显示在根 URL 上,但不会显示在任何子站点上,即使我们确实选中了“重置所有子站点以继承系统主站点”复选框页面设置”。 http://SiteName/_Layouts/ChangeSiteMasterPage.aspx 物理更改在那里,所以我们知道 MasterPage 正在继承,但设计/css 更改不在子站点上..... 这是为什么? 编辑 好的,通过在我的 MasterPage 的 head 标记中添加以下代码行,我设法使所有子站点看起来都一样,并且它起作用了。 <SharePoint:CssRegistration Name="/_styles/S1.css" runat="server" EnableCssTheming="true" After="true"/> 但是现在当我在我的任何网站中更改主题时,它确实将其更改为正确的主题,但它忽略了我的 S1.css 中的 cnanges 回答1 如果您将覆盖添加到您自己的自定义 Css 文件中的 corev4.css 样式并使用站点设置将其作为备用 css 文件引用(与您可以更改母版页的页面相同),那将会更清晰(和最佳实践) 它会晚于 corev4.css 加载
  • SharePoint 2013在整个页面加载后添加JavaScript(SharePoint 2013 add javascript after whole page load)
    问题 免责声明:我没有使用SharePoint2013的经验。 我遇到了问题-整个页面加载完毕后,我必须包含/触发一些javascript函数。 我试着听DOMDocumentReady和window.load事件,但是sharepoint在这些事件之后呈现页面的其余部分。 我的问题是:在呈现带有ajax的整个页面之后,我应该怎么做才能运行脚本。 我还注意到页面导航基于哈希(#)部分。 显然,我也必须检测到这一刻。 任何帮助甚至链接到文档中的正确页面都将非常有用! 回答1 没错,$(document).ready()之后的页面上发生了很多事情。 2013确实提供了一些选择。 1)按需脚本:(加载js文件,然后执行我的代码。) function stuffThatRequiresSP_JS(){ //your code } SP.SOD.executeFunc("sp.js") 2)延迟直到加载(等待js文件,然后运行) function stuffToRunAfterSP_JS(){ //your code } ExecuteOrDelayUntilScriptLoaded(stuffToRunAfterSP_JS, "sp.js") 3)在其他东西完成后加载 function runAfterEverythingElse(){ // your code }
  • Sharepoint 2010 / Jquery - Multiple attributes added in content Editor webpart edit / save
    I’m currently performing a migration of our CMS from MCMS 2002 to SharePoint 2010. One of the MCMS templates allowed the users to add their own CSS and scripts. So that the scripts and styles are not stripped I have had to import their content into a Content Editor Web Part. The following code is an example of what gets imported. <style type="text/css"> ul#oakTabs { margin-left: 0; width: 100%; } ul#oakTabs li { display:inline; border: 1px solid #00CC99; cursor: pointer; background-color: #FFF; margin-right: 4px; padding: 2px 5px; color: #444455; height: 20px; line-height: 14px; font-weight
  • SharePoint 2007:格式化 FormField(SharePoint 2007: Formatting a FormField)
    问题 我正在尝试在发布网站的 SharePoint 母版页的页脚上显示页面所有者和上次修改日期。 在我的母版页上,我目前有: <SharePoint:FormattedString FormatText="Page owner: {0} Last updated: {1:dd/MM/yyyy}" runat="server"> <SharePoint:FormField ControlMode="Display" FieldName="PublishingContact" DisableInputFieldLabel="true" runat="server"/> <SharePoint:FormField ControlMode="Display" FieldName="Modified" DisableInputFieldLabel="true" runat="server" /> </SharePoint:FormattedString> 这很好用,但它不会修改日期格式: 页面所有者: litwareinc\treesj 最后更新: 3/31/2009 10:32 PM 我猜日期作为字符串返回,因此 dd/MM/yyyy 的格式没有任何作用。 我意识到修改 Web 应用程序上的区域设置可能会解决这个问题,但是我更感兴趣的是如何使用与默认值不同的格式来实现。 提前致谢! 强尼
  • Sharepoint 2010 / Jquery - 在内容编辑器 webpart 编辑/保存中添加了多个属性(Sharepoint 2010 / Jquery - Multiple attributes added in content Editor webpart edit / save)
    问题 我目前正在将我们的 CMS 从 MCMS 2002 迁移到 SharePoint 2010。其中一个 MCMS 模板允许用户添加他们自己的 CSS 和脚本。 为了不删除脚本和样式,我不得不将它们的内容导入到内容编辑器 Web 部件中。 以下代码是导入内容的示例。 <style type="text/css"> ul#oakTabs { margin-left: 0; width: 100%; } ul#oakTabs li { display:inline; border: 1px solid #00CC99; cursor: pointer; background-color: #FFF; margin-right: 4px; padding: 2px 5px; color: #444455; height: 20px; line-height: 14px; font-weight: bold; } ul#oakTabs li.selected { border: 1px solid #009966; color: #FFFFFF; font-weight: bold; margin-right: 4px; padding: 2px 5px; text-decoration: none; background-color: #66CC99; background-image
  • Why is SharePoint dispalying my HTML and CSS content improperly?
    I am trying to add content to a SharePoint content editor web part, but when I do, it displays as if it's ignoring parts of my CSS. It displays fine in Firefox 3.6 and IE 8 when it's a stand-alone page, but goes all off when the same code is placed in the Content Editor web part: Click here to view Often, things that are broken in SharePoint when viewed through IE will appear correctly when the same SharePoint page is viewed in FF; this time the menu was laid out correctly, but the text was the wrong color (should be white). When I examine the code using IE's Developer Tools, Sharepoint
  • SharePoint:呈现而不是下载 XML 文件(SharePoint: render, rather than download, XML file)
    问题 我目前正在尝试将基于 XML/XSLT 的网站移至 SharePoint。 基本上,现有站点由大量 XML 文件组成,每个文件都引用(通过 xml-stylesheet)一个 XSLT 文件,该文件将 XML 转换为完整的 HTML 文件(包括<html> 、 <head>和<body>等.) 我目前正在尝试做的只是将现有站点转储到 SharePoint 文档库中,让 SharePoint 控制版本控制、访问权限等,但继续让 IE 将每个 XML 文件呈现为完整的 HTML 页面。 但是,当我尝试查看 XML 文件时,SharePoint/IE 只是尝试下载源代码,而不是呈现它。 我怎样才能解决这个问题? (此外,任何有关更多 SharePointy 方法的建议将不胜感激。我曾尝试使用 XML 查看器 Web 部件,但无法正确呈现;将这些 XML 页面中的每一个都变成SP Wiki 页面,但本质上需要手动完成很多工作;页面查看器 webpart 也有同样的问题,因为它会尝试下载文件而不是显示文件。) 回答1 您必须创建一个从 dataform webpart 扩展的自定义 webpart http://blogs.msdn.com/b/joshuag/archive/2008/03/14/using-xslt-in-your-sharepoint-web-part.aspx
  • Can't open PDF files in SharePoint 2010 with Internet Explorer
    So we couldn't open .pdf in the browser in our SP2010 site. I set the setting to permissive browser file handling in central admin. I then found out that there's a bug that if a site is created from a custom template the pdf files uploaded to that site will still prompt for either Save or Cancel. I ran a hotfix on the server http://support.microsoft.com/kb/2459108 Consider the following scenario: You set Browser File Handling to Permissive for a web application in the General settings page in SharePoint 2010 Central Administration. You create a document library, and then upload an html
  • 部署到 SharePoint 2010 网站的 WCF 服务出现“找不到端点”错误(Getting “EndPoint Not Found” error with WCF service deployed to SharePoint 2010 site)
    问题 我正在尝试在我的一个共享点解决方案中使用 ajaxcontroltoolkit 中的 autocompleteextender(这需要旧版本的库,因为所有最近的都需要 .NET Framework 4.0),不幸的是我不能在UserControl,仅在实际页面中。 因此,我只剩下一个选择,即使用来自实际 Web 服务的方法。 问题是我似乎无法弄清楚如何正确部署服务和配置 web.config。 当我尝试在浏览器中查看元数据信息时,我收到一条错误消息,指出“找不到端点”。 但是,当我尝试输入带有附加到 URL 的方法名称的 URL 时,它实际上找到并执行返回 JSON 数据的方法 - 这显然意味着它可以找到我的服务。 此外,我可以使用 jQuery 来调用我的服务并返回 JSON 数据 - 但我不想在这个项目中使用 jQuery,而只想保留一切纯 C#。 我想知道的是,为什么我不能让“漂亮的元数据信息”显示在浏览器中,所以我得到“温暖的模糊”并允许其他应用程序以它应该工作的方式正确发现服务? 我对 web.config 进行了三次检查,并且同时输入了 metadataExchange 端点以及引用我的服务的端点,并且将 httpGetEnabled 设置为“true”。 我尝试运行 svcutil /t:metadata 并将其指向我的服务,但出现了几个错误