我的场景是这样的,因为workflow修改后 template id都会改变,所以我想在每次选中list中的一个item时能获取他所关联的workflow。获取workflow的问题我在VS上用C#通过workflow名字的方法来获取,但是一直找不到如何获取selected item的方法。Google一下之后只有通过写前台的JS能够获取:
var context = SP.ClientContext.get_current();
var selectedItems = SP.ListOperation.Selection.getSelectedItems(context);
还有就是listitem 的Fields里面有一个“Select”字段但是不知道怎么用,能写成SPQuery来获取吗?
不知道有没有办法从后台获取,或者有什么方法能把前台JS获取的信息传到后台处理?
我觉得获取list中的选中项应该是很常见的场景吧,为什么会没有相对应的API呢?
------解决思路----------------------
加一个delegate control,每次页面载入的时候执行后台代码将workflow的信息注册到页面。
之前写过一个小工具你可以看一下:http://blog.csdn.net/shrenk/article/details/18733501
------解决思路----------------------
其实我还是没明白,服务器端怎么就获取不到选择的Item了呢?你既然JS都能拿到ID了,在服务器端的可视化WebPart里加一个隐藏域,然后用js把值写进隐藏域,服务器端控件自然就能拿到隐藏域里的值了。
前后台交互的问题,应该不难吧。。
其实,我还是没看明白你想干什么。。
SPListItem的成员里还真的没有“Select”相关的属性和方法,SPList里面也没有什么“GetSelectedItem”之类的方法,所以比较麻烦。
其实我现在遇到的问题就是前后台的交互,因为之前也没有web端的开发经验,所以一下子也无从下手。
你提到的 “隐藏域” 是指哪个啊?Google了一下找不到什么有用的信息。谢谢
隐藏域就是asp.net里面的一个控件,你可以放个Label也行,然后隐藏,前台把值用脚本写进去,后台用代码读取。。