随笔 - 77  文章 - 1 评论 - 737 trackbacks - 86
<2008年5月>
27282930123
45678910
11121314151617
18192021222324
25262728293031
1234567

camlquery 类库下载:
 http://www.codeplex.com/camlquery
SPCAMLEditor 下载:
 http://www.codeplex.com/SPCAMLEditor

与我联系

搜索

 

留言簿(22)

我参与的团队

随笔分类(68)

My Friends

SilverLight

wss

积分与排名

  • 积分 - 81766
  • 排名 - 484

最新随笔

最新评论

阅读排行榜

评论排行榜

好久没写了,补一篇。

列表顺序号,即让列表第一列显示:
1
2
3
4
5

实现原理:

顺序号是动态改变的,只能动态生成。我们可以通过修改字段的DisplayPattern,利用js脚本输出顺序号。

操作步骤:

Step1. 按照这篇文章的做法Copy出一个新的 “编辑”字段(若出错,忽略之,刷新一下),
SPCAMLEditor使用系列(1)--利用SPCAMLEditor,10分钟打造一个在线视频播放库

Step2. 通过右键菜单-〉Property,将字段显示名改为 序号。

Step3. 修改序号字段的DisplayPattern为:

<DisplayPattern>
    <HTML><![CDATA[<script type='text/javascript'>   ]]></HTML>
    <HTML>
    if( typeof(__RowNumber) == 'undefined')
     __RowNumber=0;
  document.write(++__RowNumber);
  </HTML>
    <HTML><![CDATA[</script> ]]></HTML>
  </DisplayPattern>

Step4. 修改视图的Schema,将 序号字段添加进ViewFields中:

<ViewFields>
  <FieldRef Name="DocIcon" />
  <FieldRef Name="LinkFilename" />
  <FieldRef Name="Modified" />
  <FieldRef Name="Editor" />
  <FieldRef Name="_x7f16__x8f91__Copy" /> (这个按照实际字段InterName)
</ViewFields>


效果图:


Tag标签: SPCAMLEditor
posted on 2008-05-28 11:24 jianyi 阅读(576) 评论(25)  编辑 收藏 所属分类: Sharepoint

FeedBack:
沙发
  回复  引用    
#2楼  2008-05-29 01:07 lsgonglu [未注册用户]
如果删除一个文件,后面项目的序号应该不会作相应的改变,对吗?
  回复  引用    
#3楼 [楼主] 2008-05-29 10:13 jianyi      
@lsgonglu
会变的,序号是动态生成的.
  回复  引用  查看    
#4楼  2008-05-29 11:17 lsgonglu [未注册用户]
这个比较实用,可作为排序方式,正发愁单位新增的领导怎样排到前面(排后面他们会很不舒服)。
  回复  引用    
#5楼  2008-05-29 13:57 1895 [未注册用户]
@lsgonglu
序号并没有存下来,只是在显示的时候动态生成一下
觉得新增领导的排序,还不如直接加一个字段

  回复  引用    
#6楼 [楼主] 2008-05-29 14:18 jianyi      
@lsgonglu
这个方式不能用于排序的,"正发愁单位新增的领导怎样排到前面"这个需求加个排序字段,然后设置视图按照排序字段排列即可.
  回复  引用  查看    
#7楼 [楼主] 2008-05-29 14:19 jianyi      
@1895
如果保存下来,那当删除了数据时会出现断档的情况. 本文描述的是顺序号怎么实现,不是用于排序的排序号.
  回复  引用  查看    
#8楼  2008-05-29 23:21 lsgonglu [未注册用户]
@jianyi
增加字段的方式我想了,假如增加数字(如1、2、3……)的话,如果新插入项目的话,会有相同的数字,不能自动排序,要不得将后面的数字通通改掉,那样太麻烦了。

  回复  引用    
#9楼 [楼主] 2008-05-30 09:55 jianyi      
@lsgonglu
你是希望新加的项目派序号自动为最大? 那可以考虑写个Field,在Field里做逻辑,新建项目时生成排序好.
  回复  引用  查看    
#10楼  2008-05-30 11:26 lsgonglu [未注册用户]
具体一点说,就是跟EXCEL的序号那样收缩自如,不知道有没有什么好办法。
  回复  引用    
#11楼  2008-06-19 10:56 lxrc [未注册用户]
我现在遇到一个问题,我想把DispForm.aspx,NewForm.aspx,EditForm.aspx这3个文件改成我自己的文件,这样我可以自己行控制逻辑,但是在硬盘上找不到这几个文件,比如:Lists/List1/DispForm.aspx,这样的文件路径不存在,请问如何改呢.且这些文件是如何生成的.
  回复  引用    
#12楼  2008-06-19 11:08 李萍 [未注册用户]
在NewForm.aspx或者EditForm.aspx中,如果想让用户点击确定之后,不要返回其默认的列表页面,而返回我自己定义的一个页面,该怎么实现呢?
  回复  引用    
#13楼  2008-06-19 17:17 lxrc [未注册用户]
还有就是怎么把DispForm.aspx中的显示信息的那个WebPart变成4列,也就是不让它显示那么长.有没有办法解决??
  回复  引用    
#14楼 [楼主] 2008-06-19 23:36 jianyi      
@lxrc
利用SharePoint Designer可以找到。 你的需求定制那个提交页面即可。看一下我写的关于Renderingtemplate定制和SmartFormWebpart的文章。
  回复  引用  查看    
#15楼 [楼主] 2008-06-19 23:37 jianyi      
@lxrc
修改RenderingTemplate,看我的相关文章。或查询SKD:RenderingTemplate,
  回复  引用  查看    
#16楼  2008-06-20 10:18 eyes [未注册用户]
@李萍
在NewForm.aspx或者EditForm.aspx中,点确定后跳转的页面取决于查询字符串source,如果source为null的时候,默认跳转到列表的默认视图,如果source不为空,则调转到source的值代表的页面那里。
例如在EditForm.aspx的URL显示为http://test/list/list1/EditForm.aspx?ID=1&source=http%3A%2F%2Fwww%2E163%2Ecom
则点击确定后跳转到http://163.com,其中http%3A%2F%2Fwww%2E163%2Ecom是经过URL编码得到的,用HttpUtility.UrlEncode("http://163.com")得到。
  回复  引用    
#17楼 [楼主] 2008-06-20 14:28 jianyi      
@李萍
在NewForm.aspx或者EditForm.aspx中,如果想让用户点击确定之后,不要返回其默认的列表页面,而返回我自己定义的一个页面,该怎么实现呢----
两个方法:
1)就像上面eyes说的,修改Source参数,但是怎么修改呢? 这个需要修改字段Schema,你学习下SPCamlEditor的使用,用它去改下那个编辑字段.
2)定制NewForm.aspx或者EditForm.aspx页面,你可以试用下我发布SmartFormWebPart.
  回复  引用  查看    
#18楼  2008-09-01 17:54 1895 [未注册用户]
@jianyi
jianyi大哥,如果不使用这种方法,而想在自己的ASP.NET页面上直接使用MOSS自带的字段排序功能,我只看到SPFIELD有Sortable这个属性,但是不知道将排序号是怎么存的,如何存的,可否告知?
  回复  引用    
#19楼 [楼主] 2008-09-01 19:30 jianyi      
@1895
Sortable是控制默认的列表页面上字段是否允许排序。如果你是asp.net页面,
直接通过SPQuery访问列表数据时可以指定排序依据的。
直接采用MOSS自带的字段排序功能是不可行的,除非你直接用系统的ListViewWebPart.
  回复  引用  查看    
#20楼  2008-09-02 09:14 1895 [未注册用户]
@jianyi
jianyi大哥,我现在就是在自己的页面中将ListViewWebPart单独拿出来使用,
就是想自己在页面上实现模仿MOSS的字段排序功能,就是不知道MOSS的字段顺序的设置的实现机制是什么

基本就是不想使用MOSS自己的页面,但是需要在ASP.NET页面上实现MOSS的功能


  回复  引用    
#21楼 [楼主] 2008-09-02 11:56 jianyi      
@1895
直接用ListViewWebPart的话,它会判断字段的Sortable来启用排序,具体的排序逻辑在字段的Schema中定义了一部分.

还是不要完全自己做吧...
还是说你只是要仿照MOSS的效果?? 那就随便做了. 可以考虑采用SPGridView来实现.
  回复  引用  查看    
#22楼  2008-09-03 11:02 1895 [未注册用户]
@jianyi
用SPGridView的话,ListViewWebPart的那个很不错的功能"在数据表中填写"
就是那个像在ACCESS中编辑一样的效果就出不来了
  回复  引用    
#23楼 [楼主] 2008-09-03 21:56 jianyi      
@1895
那就只能用ListViewWebPart了,ListViewWebPart有什么不能满足需要吗?
  回复  引用  查看    
#24楼  2008-09-04 11:32 1895 [未注册用户]
@jianyi
1.如下这么使用的话,新增填写数据时候的返回按钮会报错……
protected override void CreateChildControls()
{
this.internalListFormWebPart = new ListFormWebPart();
this.internalListFormWebPart.ListName = web.Lists["2008"].ID.ToString("B").ToUpper();
this.internalListFormWebPart.ControlMode =Microsoft.SharePoint.WebControls.SPControlMode.New;
this.internalListFormWebPart.Title = "";
this.internalListFormWebPart.ListTitle = "";
this.internalListFormWebPart.TemplateName = "ListForm";
this.internalListFormWebPart.FormType = 8;
this.internalListFormWebPart.AllowClose = false;
this.internalListFormWebPart.AllowConnect = false;
this.internalListFormWebPart.AllowZoneChange = false;
Controls.Add(this.internalListFormWebPart);

base.CreateChildControls();
}

2.如果需要改成修改模式的话,是不是只要将ControlMode更换一下,再将this.internalListFormWebPart.ListItemId赋值即可?




  回复  引用    
#25楼 [楼主] 2008-09-04 17:09 jianyi      
@1895
是的.
  回复  引用  查看    

标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
博客园首页

新闻频道

社区

小组

博问

网摘

闪存

  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2008-05-28 11:42 编辑过
成果网帮您增加网站收入


相关链接: