Sharepoint项目周记三:自定义上传页面等
2007-12-24 09:51
621 查看
项目已经进展到了第三周,终于感觉有点眉目了-_-。
由于这次的项目很多知识以前并不了解(主要是Project SDK和TFS SDK),只能一边开发一边学习,因此本周的任务主要是复杂页面的定制和webpart的开发。我们采取的是迭代开发的方式:对于难点、一时解决不了的问题留待二期解决。
碰到的问题主要有:
1、如何在一行中显示两条博客文章?
在MOSS的博客中,可以把文章列表转化成数据视图,然后在数据视图中控制页面的显示格式。由于xsl中只有foreach的循环方式,没有(for i=0; i<count;i+=2)的方式,而且在xsl中出现的html标签必须是一一对应的。要在一行中显示两条信息就需要使用转码的方式:
<xsl:for-each select="$Rows">
<xsl:if test="position() mod 2 =1">
<xsl:text disable-output-escaping="yes"><tr ></xsl:text>
<td class="style2" style="height: 24px">
<xsl:value-of disable-output-escaping="no" select="substring(@Title, 1,20)" />
</td>
</xsl:if>
<xsl:if test="position() mod 2 =0">
<td class="style2" style="height: 24px">
<xsl:value-of disable-output-escaping="no" select="substring(@Title, 1,20)" />
</td>
<xsl:text disable-output-escaping="yes"></tr></xsl:text>
</xsl:if>
</xsl:for-each>
通过输出特殊的tr的方式来实现
2、如何自定义自己的上传页面?
由于上传文件时会自动跳转到_layouts下的upload.aspx页面,这个页面是所有站点公用的,如果修改的话会导致所有站点都有变化。我在网上查了一下,很多人提到可以定制一个自己的文档库,作为feture等发布后来使用,但是这种方式比较麻烦。后来发现可以在upload.aspx中加入一个判断,在不同的情况下调用不同的母版页来实现定制的效果:
<script runat="server">
protected void Page_PreInit(object sender, EventArgs e)
</script>
3、如何在自己的页面显示项目信息
我们的项目需要在自己的网站上显示Project Server中的项目情况,在微软的网站上下了Project 2007 SDK后发现其中有一个很好的例子:ProjTool。Project Server中提供了很多的web services,通过改造这个例子可以方便的实现自己的webpart
4、如何使用TFS中的功能(报表、工作项等)
TFS 2008中同样提供了很多web services,通过调用这些web services可以很方便的查询出工作项,对于工作项的增加、修改比较麻烦,暂且使用TFS Web access中的功能
对于报表的使用,由于TFS是直接使用的Report server,可以在自己的页面中同样调用对应的报表就可以了
5、博客等的类别中出现 + # 等符号时进入Category.aspx时有问题,找不到记录(比如C#)
这个可能是MOSS的一个BUG,当博客的类别中有中文时,MOSS会自动进入url转码,那么就可以正常进入类别一览的页面。但是当类别中出现 + # 等符号时没有进入转码,进入类别一览的页面时就不能正确显示本类别的文章了。因此我们需要首先把类别列表转成数据视图,然后在数据视图中通过Javascript来进行转码:
<a href="javascript:trans('{@Title}')" id="blgcat{format-number(string(@ID), '#;-#')}"><xsl:value-of disable-output-escaping="no" select="@Title" /></a>
<script language="javascript">
function trans(str)
</script>
6、搜索页面定制
重新设置搜索的结果页面,然后把_layout下的osssearchresults.aspx复制到当前网站,稍作修改
7、页面报错:无法跨 AppDomain 传递 GCHandle
当改动自定义控件ascx比较频繁时会出现此错误,把iis重启就可以了
8、页面上有javascript报错
由于在母版页中把PlaceHolderSearchArea放到div中隐藏了,那么在内容页中最好不要出现这个标记,如果在内容页中在这个标记中放入SmallSearchInputBox会报Javascript错误
由于这次的项目很多知识以前并不了解(主要是Project SDK和TFS SDK),只能一边开发一边学习,因此本周的任务主要是复杂页面的定制和webpart的开发。我们采取的是迭代开发的方式:对于难点、一时解决不了的问题留待二期解决。
碰到的问题主要有:
1、如何在一行中显示两条博客文章?
在MOSS的博客中,可以把文章列表转化成数据视图,然后在数据视图中控制页面的显示格式。由于xsl中只有foreach的循环方式,没有(for i=0; i<count;i+=2)的方式,而且在xsl中出现的html标签必须是一一对应的。要在一行中显示两条信息就需要使用转码的方式:
<xsl:for-each select="$Rows">
<xsl:if test="position() mod 2 =1">
<xsl:text disable-output-escaping="yes"><tr ></xsl:text>
<td class="style2" style="height: 24px">
<xsl:value-of disable-output-escaping="no" select="substring(@Title, 1,20)" />
</td>
</xsl:if>
<xsl:if test="position() mod 2 =0">
<td class="style2" style="height: 24px">
<xsl:value-of disable-output-escaping="no" select="substring(@Title, 1,20)" />
</td>
<xsl:text disable-output-escaping="yes"></tr></xsl:text>
</xsl:if>
</xsl:for-each>
通过输出特殊的tr的方式来实现
2、如何自定义自己的上传页面?
由于上传文件时会自动跳转到_layouts下的upload.aspx页面,这个页面是所有站点公用的,如果修改的话会导致所有站点都有变化。我在网上查了一下,很多人提到可以定制一个自己的文档库,作为feture等发布后来使用,但是这种方式比较麻烦。后来发现可以在upload.aspx中加入一个判断,在不同的情况下调用不同的母版页来实现定制的效果:
<script runat="server">
protected void Page_PreInit(object sender, EventArgs e)
</script>
3、如何在自己的页面显示项目信息
我们的项目需要在自己的网站上显示Project Server中的项目情况,在微软的网站上下了Project 2007 SDK后发现其中有一个很好的例子:ProjTool。Project Server中提供了很多的web services,通过改造这个例子可以方便的实现自己的webpart
4、如何使用TFS中的功能(报表、工作项等)
TFS 2008中同样提供了很多web services,通过调用这些web services可以很方便的查询出工作项,对于工作项的增加、修改比较麻烦,暂且使用TFS Web access中的功能
对于报表的使用,由于TFS是直接使用的Report server,可以在自己的页面中同样调用对应的报表就可以了
5、博客等的类别中出现 + # 等符号时进入Category.aspx时有问题,找不到记录(比如C#)
这个可能是MOSS的一个BUG,当博客的类别中有中文时,MOSS会自动进入url转码,那么就可以正常进入类别一览的页面。但是当类别中出现 + # 等符号时没有进入转码,进入类别一览的页面时就不能正确显示本类别的文章了。因此我们需要首先把类别列表转成数据视图,然后在数据视图中通过Javascript来进行转码:
<a href="javascript:trans('{@Title}')" id="blgcat{format-number(string(@ID), '#;-#')}"><xsl:value-of disable-output-escaping="no" select="@Title" /></a>
<script language="javascript">
function trans(str)
</script>
6、搜索页面定制
重新设置搜索的结果页面,然后把_layout下的osssearchresults.aspx复制到当前网站,稍作修改
7、页面报错:无法跨 AppDomain 传递 GCHandle
当改动自定义控件ascx比较频繁时会出现此错误,把iis重启就可以了
8、页面上有javascript报错
由于在母版页中把PlaceHolderSearchArea放到div中隐藏了,那么在内容页中最好不要出现这个标记,如果在内容页中在这个标记中放入SmallSearchInputBox会报Javascript错误
相关文章推荐
- Sharepoint项目周记三:自定义上传页面等
- Sharepoint项目:自定义上传页面等
- SharePoint 自定义列表编辑页面,附件上传提示“此表单自定义为不处理附件”
- SharePoint 2010 自定义页面出现“项目可能已被其他用户删除或重命名”问题跟踪
- SharePoint 2010 ——自定义上传页面与多文件上传解决方案
- 错误:当你使用id作为sharepoint的自定义页面的查询参数时,总会提示项目不存在!
- Sharepoint 2010 Form认证自定义登录页面,总是自动登录问题
- 配置了404页面项目文件夹下的文件不存在不走自定义页面。
- 自定义sharepoint的错误页面
- 深入浅出SharePoint——在自定义表单中使用上传附件控件
- 自定义Sharepoint的登陆页面
- php项目如何自定义404页面
- 自定义Sharepoint的登陆页面
- 关于在apache服务器环境下的项目上传nginx环境下页面只有主页正常,其他页面404的一种情况
- Eclipse运行项目后在自定义浏览器打开页面
- SharePoint 自定义列表页面定制续—[保存模板后不能正常使用]
- [翻译]自定义Sharepoint的登陆页面
- 自定义tomcat的app项目的404页面
- Sharepoint项目周记一:关于开展MOSS项目的前期调查和需要解决的问题
- 自定义项目中的404页面,并且实现指定时间内跳转到一个指定的页面