SharePoint小技巧记录如下,不断更新中

0 、前一个页面的RUL
ASP.NET   Request.Referrer
jsp              String request_url=request.getHeader("Referer");
asp             Request.ServerVariables("HTTP_REFERER")
1 、WebForm中Group效果的html

   


动态
 

 

2、WebForm中滚动字幕效果的html

html 滚动字幕代码

基本语法:


举例:
啦啦啦,我会移动耶! 
文字移动属性的设置:
方向  #=left, right
举例:
啦啦啦,我从右向左移!   direction=left>
=#>


啦啦啦,我从左向右移! 
方式 :
 #=scroll, slide, alternate
举例:
啦啦啦,我一圈一圈绕着走!   behavior=scroll>
=#>
 direction=right>


啦啦啦,我只走一次就歇了!   behavior=slide>


啦啦啦,我来回走耶!
循环 :
 #=次数;若未指定则循环不止(infinite)
举例:
啦啦啦,我只走 3 趟哟!   loop=3 width=50% behavior=scroll>
=#>
 behavior=alternate>


啦啦啦,我只走 3 趟哟!   loop=3 width=50% behavior=slide>


啦啦啦,我只走 3 趟哟! 
速度:

举例:
啦啦啦,我走得好快哟! 
延时 :

举例:
啦啦啦,我走一步,停一停! 
外观(Layout)设置:

对齐方式(Align)  #=top, middle, bottom

啦啦啦,我会移动耶!

对齐上沿、中间、下沿。 
底色 :
 
举例:
#=rrggbb 16 进制数码,或者是下列预定义色彩:
Black, Olive, Teal, Red, Blue, Maroon, Navy, Gray, Lime, 
Fuchsia, White, Green, Purple, Silver, Yellow, Aqua 
啦啦啦,我会移动耶! 
面积 :
举例:

啦啦啦,我会移动耶!
 
啦啦啦,我会移动耶!

空白:(Margins)
举例:
啦啦啦,我会移动耶!
大家好!
2:在DREAMWEAVER这个工具里怎么插入一个打开网叶就自动播放音乐,而且整个过程隐藏的音频播放,如果用 html 代码写怎么写 
答:

背景音乐 

 #=WAV 文件的 URL
 #=循环数
 src="sound.wav"> loop=#> src=#>
 hspace=20 vspace=20 width=150 bgcolor=ffaaaa align=middle>
=# vspace=#>
 height=40 width=50% bgcolor=aaeeaa>
=# width=#>
 bgcolor=aaaaee>
=#>
 align=# width=400>
 size=6>
=#>
 scrolldelay=500 scrollamount=100>
=#>
 scrollamount=20>
=#>
 loop=3 width=50% behavior=alternate>


另及:

ONMOUSEOUT=this.start() :用来设置鼠标移出该区域时继续滚动
ONMOUSEOVER=this.stop(): 用来设置鼠标移入该区域时停止滚动


3、SharePoint中的权限提升有一个小的注意点,
在以前SharePoint 2003 中,impersonate 是一个可以在sps 环境中使用所有功能的至高无上选择,通过impersonate 就可以通过Object Modal 的方式操作SharePoint 的所有功能。但是到了Microsoft  Office SharePoint Server 2007 (moss2007 ,SharePoint Portal Server 2003 的后续版本) 这个又出现了新的变化,Impersonate 被丢弃了,而取而代之的是声称跟好的SPSecurity.RunWithElevatedPrivileges() , 它通过传入一个无返回,无输入参数的委托作为参数,对委托的方法以提升权限后的身份去运行,来达到通过Object Modal 方式访问Moss 中所有资源和功能的目的。
        在网上有些文章指出SPSecurity.RunWithElevatedPrivileges 这个方法实际上是用了IIS 中应用程序池中的用户去代替当前用户去运行,委托中的代码。这的确如此

但是这个方法并不是一步到位,直接的去使用应用程序池的用户,而是通过了一个所谓的“代理人”去完成这个事。无论在将Moss 的Web 应用程序部署为Windows 集成身份验证还是自定义的Forms 验证,在Moss 的所有列表库或文档库中的权限列表中,都会看到一个人,就是SHAREPOINT\System 这个用户,这个用户也是映射为当前的web 应用的网站集管理员,一般是第一个管理员。

Moss 2007  中,就是通过这个系统默认的管理帐号去模拟IIS 中应用程序池的用户,来达到对当前用户操作提升权限的效果。这就是说,其实在提升权限之后的一切操作都是以这个系统帐户(SHAREPOINT\system) 的身份去执行的,所以可以看到,若通过提升权限后进行的对文档库或列表进行添加、修改,在列表项的作者或修改人都会是系统帐户,而不是当前登录那个人的帐户,除非当前登录的人是网站集的管理员。
        因为,SPSecurity.RunWithElevatedPrivileges 是通过模拟一个固定的帐户去进行操作,所以就带来了另一个问题,就是当这“代理人”系统帐户对列表或文档没有权限的时候,就像上图那样,系统帐户对列表的权限是受限访问,SPSecurity.RunWithElevatedPrivileges 就会不起作用,而且在代码的层面上很难发现这个问题。所以在需要通过调用SPSecurity.RunWithElevatedPrivileges来提升权限操作的列表或文档库,都需要确保系统帐户(SHAREPOINT\system)在该列表或文档库中存在,并且这个帐户的权限必须为完全控制。

这样调用提升权限时才会成功。

 

<Field ID="{7F55A8F0-4555-46BC-B24C-222240B862AF}" Type="RichHTML" Name="NewsBodyField" DisplayName="News Body" StaticName="NewsBodyField" Hidden="False" Required="True" Sealed="False" />

<Field ID="{7F55A8F0-4555-46BC-B24C-222240B862AF}" Type="RichHtmlField" Name="NewsBodyField" DisplayName="News Body" StaticName="NewsBodyField" Hidden="False" Required="True" Sealed="False" />

http://msdn.microsoft.com/en-us/library/ms437580.aspx


4、ItemDeleting中获取SPContext
SPContext.Current在EventHandler中的ItemDeleting,也就是事件发生之前是不能获取的,详细解释如下网页,里面有解决办法,看来对底层的东西很不熟悉啊。

http://social.msdn.microsoft.com/Forums/en-US/sharepointdevelopment/thread/ccff5abe-07e7-48d6-bf85-ebb3d6397186/

5、Caml查询的精确匹配时间
caml查询的时候默认是不精确匹配时间的,需要加上一个属性,就是
IncludeTimeValue='true'
使得caml查询变成

<Where>
                                           

                                              
<Eq>
                                                
<FieldRef Name='_ModerationStatus' />
                                                
<Value Type='ModStat'>已批准Value>
                                             
Eq>
                                              
<Leq>
                                                 
<FieldRef Name='" + list.Fields["公告发布时间"].InternalName + @"' />
                                                 
<Value Type='DateTime' IncludeTimeValue='true'>+ DateTime.Now.ToString() + @"ZValue>
                                              
Leq>
                                            

                                       
Where>
这样再查询的话,就是精确匹配时间的查询了。

6、WebPart中获取当前页面的ListViewWebPart
using
 System;
using System.Runtime.InteropServices;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Serialization;
using System.Xml;
using System.ComponentModel;

using Microsoft.SharePoint;
using Microsoft.SharePoint.WebControls;
using Microsoft.SharePoint.WebPartPages;

namespace WebPartDemo5
{
    [Guid(
"6aa788c7-9a39-487c-8e9d-31b17c863968")]
    
public class WebPartDemo5 : Microsoft.SharePoint.WebPartPages.WebPart
    {
        
private string _strText;
        [Personalizable]
        [WebBrowsable]
        [WebDisplayName(
"请输入一段文字")]
        [WebDescription(
"Web Part上将会出现这段文字")]
        [Category(
"个性设置")]
        
public string StrText
        {
            
get
            {
                
return _strText;
            }
            
set
            {
                _strText 
= value;
            }
        }
        
public WebPartDemo5()
        {
        }
        
protected override void OnLoad(EventArgs e)
        {
            
base.OnLoad(e);
            
try
            {
                
foreach (Microsoft.SharePoint.WebPartPages.WebPart wp in this.Zone.WebParts)
                {
                    
if (wp is Microsoft.SharePoint.WebPartPages.ListViewWebPart)
                    {
                        
this.Controls.Add(new LiteralControl(StrText));
                        Microsoft.SharePoint.WebPartPages.ListViewWebPart listWp 
= wp as Microsoft.SharePoint.WebPartPages.ListViewWebPart;
                        XmlDocument doc 
= new XmlDocument();
                        doc.LoadXml(listWp.ListViewXml);
                        XmlNode node 
= doc.DocumentElement.SelectSingleNode("Query");
                        node.InnerXml
=@"
                                          
                                             
                                             
                                          
 type='text'>
 name='_x59d3__x540d_' >

                                       
";
                        listWp.ListViewXml 
= doc.InnerXml;
                        
break;
                    }
                }
            }
            
catch (Exception ex)
            {
                
this.Controls.Add(new LiteralControl(ex.Message));
            }
        }
    }
}

7、2009-2-25更新
      1)两个应用的Session是不通用的,也就是说在一个应用中存储一个session["username"],在另外一个应用中不能获取,另外一个应用存储的session["username"]和前一个应用的不是一回事,互相不能访问,他们在不同的会话中。
     2) 两个应用对应的是两个本地目录。
      3)同一个应用的,不同网站集之间session可以互相访问,也就是同一个会话。不同的网站集在同一个本地目录。
      4)不同应用,不同网站集之间获取数据没有问题

上面的都是我用下面这个用户控件检测出来的结果,代码如下


    Namespace="Microsoft.SharePoint.WebControls" TagPrefix="cc1" %>
<div>
    
<br />
    
<fieldset><legend>app1的任务legend>
    
<asp:Button ID="Button3" runat="server" Text="获取app1's任务" onclick="Button3_Click" />
    
<cc1:SPGridView ID="SPGVAPP1" AutoGenerateColumns="false" runat="server">
    
<Columns>
        
<cc1:SPBoundField DataField="Title" >cc1:SPBoundField>
    
Columns>
    
cc1:SPGridView>
    
fieldset>
    
<fieldset><legend>app2的任务legend>
    
<asp:Button ID="Button4" runat="server" Text="获取app2's任务" onclick="Button4_Click" />
    
<cc1:SPGridView ID="SPGVAPP2" AutoGenerateColumns="false" runat="server">
    
<Columns>
        
<cc1:SPBoundField DataField="Title" >cc1:SPBoundField>
    
Columns>
    
cc1:SPGridView>
    
fieldset>
    
<fieldset><legend>app2's anotherSite的任务legend>
    
<asp:Button ID="Button5" runat="server" Text="app2's anotherSite的任务" onclick="Button5_Click" />
    
<cc1:SPGridView ID="SPGVANOSITE" AutoGenerateColumns="false" runat="server">
    
<Columns>
        
<cc1:SPBoundField DataField="Title" >cc1:SPBoundField>
    
Columns>
    
cc1:SPGridView>
    
fieldset>
    
<asp:Button ID="Button2" runat="server" onclick="Button2_Click" 
        Text
="获取当前Session["UserName"]" />
    
<br />
    当前用户是:
<asp:Label ID="lblUserName" runat="server" BorderStyle="Solid" 
        BorderWidth
="1px" Text="Label" Width="166px">asp:Label>
    
<br />
    
<br />
    输入当前用户名:
<asp:TextBox ID="txtUserName" runat="server" style="margin-bottom: 0px">asp:TextBox>
    
<br />
    
<asp:Button ID="Button1" runat="server" onclick="Button1_Click" 
        Text
="设置Session["UserName"]" />
    
<br />
div>
 dt;
                    SPGVANOSITE.DataBind();
                }
            }
        }
    }
}


>


      


在下面总结了我找到的关于sharepoint开发知识点的博客链接,我会一直不断的更新,如果博客的主人认为有问题的话,可以联系我,谢谢这些博客的主人为大家做的总结。
本文档会一直更新,添加新的博客链接,希望可以给大家一些帮助。
1、http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spfieldtype.aspx


23、SharePoint,如何在WebPart中访问页面上的其他WebPart
http://soft.zdnet.com.cn/software_zone/2007/1031/595664.shtml


24.、http://www.cnblogs.com/dotnba/archive/2007/11/19/964004.html


25/、 http://www.ondotnet.com/pub/a/dotnet/2005/08/08/localizingaspnet20.html


30、如何最方便的创建SharePoint解决方案包?
http://blog.podlook.com/blog/blog-joycode-com-MainFeed-aspx/104276-aspx.htm
http://www.cnblogs.com/aivdesign/articles/1298952.html


31、http://www.cnblogs.com/lickies/archive/2009/01/22/1379734.html


32、Microsoft 官方 【Web 内容管理 】
http://office.microsoft.com/zh-cn/sharepointserver/CH101785902052.aspx

33、[Best Practice]WSPBuilder和QuickPart合作进行Web Partk可视化开发与部署的好方法
http://blog.joycode.com/ipark/archive/2009/01/16/115436.aspx

34、http://www.colladec.com/
CollaDec,Web部件管理器、事件处理程序管理器、FriendlyQuery类库

38、命令行操作

本主题列出并说明了利用 Stsadm.exe 可执行的操作。有关必选和可选参数以及参数的缩写形式的详细信息,请参阅命令行参数。有关命令行工具使用的详细信息,请参阅“Windows SharePoint Services 管理员指南”中的“Windows SharePoint Services 管理工具简介”。


http://www.suifenhe.gov.cn/_vti_bin/help/2052/sps/html/stsk01.htm#stsk01_createweb

39、Team-Based Development in Microsoft Office SharePoint Server 2007
http://msdn.microsoft.com/en-us/library/bb428899.aspx

40、Customizing and Branding Web Content Management-Enabled SharePoint Sites (Part 1 of 3): Understanding Web Content Management and the Default Features

相关文章:

  • 2021-12-11
  • 2021-05-22
  • 2021-11-17
  • 2022-12-23
  • 2021-06-27
  • 2021-10-18
  • 2022-12-23
猜你喜欢
  • 2022-02-12
  • 2021-09-04
  • 2021-05-27
  • 2021-07-26
  • 2021-07-03
  • 2021-11-17
相关资源
相似解决方案