添加创建项目
1. 打开VS2010,点击新建项目,选择“Sharepoint”模板的2010,选择“可视化web”部件。
出现如图:
下面介绍一下各个文件的用途:
Features这个文件存放的是功能的xml文件。
Elements.xml是实现feature的程序定义清单。
SPGridViewObject.cs 我们也可以直接在这个类中开发,动态生成控件。可以跟在ascx.cs中实现的功能一样。只是可视化差了一点。
SPGridViewObject.webpart这个是我们要部署的文件。
SPGridViewObjectUserControl.ascx这个就是可视的web部件,我们可以直接拖拽控件到页面上,然后进行开发。
Key.snk这个文件大家都很熟悉了,如果把程序集放入GAC中的话,都需要强命名。
2. 首先在页面上添加SPGridView,如图:
要设置AutoGenerateColumns=”false”,因为SPGridView不支持自动生成列。
3. 要实现分页的话,必须加入SPGridViewPager,如图:
GridViewId是你要跟哪个SPGridView分页的ID。
ObjectDataSource
使用ObjectDataSource做数据源好处:可以自动处理排序和过滤。
坏处:不能够绑定Sharepoint中列表的数据。
1. 处理数据源
Ø 需要指定ObjectDataSource的ID,TypeName,SelectedMethod,并且将数据源放入Controls中。
Ø TypeName是要执行的程序集。这个需要斜对。
代码如下:
绑定后如图:
Ø 需要注意的是:绑定的时候要加上:SPGridView1.EnableViewState = false;否则点击排序的时候,就会重复加载数据。而且如果不加上的话,过滤和分组没有办法同时实现。
2. 绑定字段
Ø 因为SPGridView控件不支持自动生成数据列,因此所有的列需要在代码中声明。
代码如下:
基本的信息就是绑定上字段的“HeaderText”,“DataField”,“SortExpression”,具体意思就不在一一讲解了,因为看属性就知道是什么意思了。最后一句很重要: SPGridView1.AllowSorting = true;如果将他设为false则就没有排序功能了。
3. 设置过滤字段
Ø 需要说明的是FilterDataFields属性,这个是绑定需要过滤的字段的,如果需要过滤的“标题”是第一列,则直接写成“标题,..,”,如果标题不是第一列,则写成“,标题,…,”。
部署后如图:
4. 设置分组
Ø 分组代码如下:
分组完成,部署上去以后,显示如图:
5. 添加下拉菜单
Ø 我们可以添加像sharepoint中那样的下拉菜单。我们添加了一列“解决办法“的下拉菜单。
代码如图:
生成效果如图:
6. 分页
Ø 设置分页的话,需要编写分页事件,并且在SPGridView中设置PageSize属性。例子中设置PageSize=”2”如图:
实现后的效果如图:
7.绑定数据源
一定要注意绑定数据源的时候设置EnableViewState=false属性。
8.部署
VS2010真是个好东西,直接将很多东西都生成了,而且部署起来很方便。
它的部署:
1. 先将dll文件放入GAC中。
2. 在web.config中修改<safeControl>节点。
3. 在C:/Program Files/Common Files/Microsoft Shared/Web Server Extensions/14/TEMPLATE/CONTROLTEMPLATES文件下建一个跟webpart相同名称的文件夹,用户控件(.ascx)存在这个文件夹下。
4. 在C:/Program Files/Common Files/Microsoft Shared/Web Server Extensions/14/TEMPLATE/FEATURES文件夹下创建一个功能文件,里面含有:.webpart,feature.xml,element.xml。
这些操作在用VS2010时,点击部署,就直接完成了,给我们省去了很多工作,如果用VS2008不用插件的话,就只有自己去写这些部署文件。
SPDataSource
使用SPDataSource作为数据源的时候,好处:可以直接读取Sharepoint中站点中列表的数据。坏处:不能够实现过滤。
除了数据源跟ObjectDataSource获取的时候不一样外,其他的都一样,因此只列举处理数据源的部分。
1. 处理数据源
Ø 读取站点中的Case列表。利用的是SPDataSource的属性List