Salesforce的StandardSetController使用Demo

先放Github地址
https://github.com/Kealthals/Salesforce-StandardSetControllerDemo.git

事情起因,是有人问我为什么StandardSetController无法保存Selected状态。
我觉得既然标准List View可以,那么使用StandardSetController应该也可以。
虽然这个Class我用的也不多,但还是动手写个一个小Demo验证了一下我的想法,虽然花了些小心思,但证明确实可行。
验证完毕,转念一想,既然已经动手了,就干脆把所有的methods都演示一遍吧。权当给自己留一个财富。

StandardController大家都比较熟悉,用来处理单条数据。模拟的是Create/Edit页面和Detail页面。
StandardSetController用的不多,因为模拟的是List View页面。标准List View页面已经很强大了,很少会遇到这种需求。
这个Demo也就是尽量做一个和标准List View类似的页面,时间有限,肯定做不到标准页面一般的好看和完美。
最低目标是将这个Class提供的method都使用一遍,除了一个不明所以的method之外,最低目标我觉得是完成了。
功能上,也提供了基本的
1. 罗列数据
2. 翻页
3. 选择数据(Selected)
4. 选择List View
5. 改变Page Size
6. 跳转指定页
7. Inline Edit(还不完美)
作为一个独立功能来讲,勉强达到了凑合着用的程度。
在功能实现的时候,又不断遇到了一些或新或旧的小问题,在大家的帮助下都找了比较好的小方案解决掉了这些小问题。
比如SFDC的autofocus,inputtext的输入类型限制等等。

代码还没来得及加注释,但本身结构就不复杂,变量名和方法名也尽最大努力的能自表其意。之后有空慢慢的加进去。
由于是StandardSetController的Demo,就本着突出主题,尽量减少不相干的代码和Metedata。
所以除了干掉Autofocus(《如何优雅的干掉vf的autofocus》)的时候不得已使用了Javascript,其他的全部使用sfdc标准标签。
为了方便人看,代码里也没有按照Coding Standard把Hard Code换成静态常量。通用的方法也没有提到工具类。
repo的目录结构也做成了deploy直接能用的样式,也放了package.xml。
在这样的原则下,保持住了只有一个VF一个Controller,没有节外生枝。
想试一下的同学,clone下来,直接deploy到自己的Org里就能用。

具体每个方法的说明文字我也不想在这翻译凑字数,懂英语或者日语,自己看文档就可以了。
很久以前我写过一篇如何读代码的文章(《关于阅读代码》),当时是写给JAVA的,套用在SFDC里也一样。
VF就当作是JSP,Controller就当作是Java,页面加载开始,先构造方法,然后渲染页面,页面用到谁就执行谁,渲染完毕点谁就执行谁,这也不用多讲。
说白了都是熟练工种。
作为一个手艺人,不图名不图利,没开放的repo我也有很多,既然开放了这个repo,肯定也会好好弄。

以后打算多做一些Demo出来,一个是补充Sfdc文档的不足,一个是当作以后开发的代码库。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据