实现动态查询列表视图数据
2009-11-04 00:17
302 查看
在实际项目中经常会遇到客户要求查询列表视图要像一般的ASP.NET一样,如果条件简单让他们直接用列表视图筛选功能就可以了。
如果筛选条件很复杂的话,他们就没办法直接用列表视图筛选功能来实现了,那我们怎么办呢?
那我们就开发一个查询功能的WebPart,让用户输入查询条件来查询。以下我把最有用的部分发布出来,相信大家都会构造SPQuery查询语句。
private void cmdListFiltes_Click(object sender, System.EventArgs e)
{
//定义一个SPView
SPView mView = null;
//定义一个需要查询的ListViewWebPart,
//其实SPList显示界面中都是用ListViewWebPart显示的
ListViewWebPart lvSelect = null;
//构造SPQuery查询字符串,查询字符串
string sFiltersQuery = getQueryStr();
//找出你要查询的ListViewWebPart
//当然你在配置WebPart的时候需要输入查询的ListViewWebPart的
foreach (WebPart webPart in WebPartManager.WebParts)
{
//判断是否是ListViewWebPart类型
if (webPart.GetType() == typeof(ListViewWebPart))
{
if (webPart.UniqueID == SelectListViewWebPartUniqueID)
{
lvSelect = webPart as ListViewWebPart;
break;
}
}
}
//关键部分
if (lvSelect != null)
{
//你需要查询的SPList
SPList list = SPControl.GetContextWeb(this.Context).Lists[listname];
//给SPView赋值
mView = list.Views[new Guid(lvSelect.ViewGuid)];
//查询之后从那里来回到那里去
sSelectViewOrgQuery = mView.Query;
//给SPView中
mView.Query = sFiltersQuery;
//把SPView的SchemaXml赋给ListViewWebPart的ListViewXml
lvSelect.ListViewXml = mView.SchemaXml;
//回到原始状态,不要改变SPView的SPQuery值
mView.Query = sSelectViewOrgQuery;
}
}
希望对大家有所帮助。
如果筛选条件很复杂的话,他们就没办法直接用列表视图筛选功能来实现了,那我们怎么办呢?
那我们就开发一个查询功能的WebPart,让用户输入查询条件来查询。以下我把最有用的部分发布出来,相信大家都会构造SPQuery查询语句。
private void cmdListFiltes_Click(object sender, System.EventArgs e)
{
//定义一个SPView
SPView mView = null;
//定义一个需要查询的ListViewWebPart,
//其实SPList显示界面中都是用ListViewWebPart显示的
ListViewWebPart lvSelect = null;
//构造SPQuery查询字符串,查询字符串
string sFiltersQuery = getQueryStr();
//找出你要查询的ListViewWebPart
//当然你在配置WebPart的时候需要输入查询的ListViewWebPart的
foreach (WebPart webPart in WebPartManager.WebParts)
{
//判断是否是ListViewWebPart类型
if (webPart.GetType() == typeof(ListViewWebPart))
{
if (webPart.UniqueID == SelectListViewWebPartUniqueID)
{
lvSelect = webPart as ListViewWebPart;
break;
}
}
}
//关键部分
if (lvSelect != null)
{
//你需要查询的SPList
SPList list = SPControl.GetContextWeb(this.Context).Lists[listname];
//给SPView赋值
mView = list.Views[new Guid(lvSelect.ViewGuid)];
//查询之后从那里来回到那里去
sSelectViewOrgQuery = mView.Query;
//给SPView中
mView.Query = sFiltersQuery;
//把SPView的SchemaXml赋给ListViewWebPart的ListViewXml
lvSelect.ListViewXml = mView.SchemaXml;
//回到原始状态,不要改变SPView的SPQuery值
mView.Query = sSelectViewOrgQuery;
}
}
希望对大家有所帮助。
相关文章推荐
- 实现动态查询列表视图数据
- 学习: 实现动态查询列表视图数据(转)
- asp+ajax能实现根据下拉列表值动态无刷新显示数据
- ajax+jquery+flea+smarty实现了通过选择下拉列表动态显示相应的数据
- Ext.grid.EditorGridPanel单元格内套用下拉列表,且列表数据为动态加载,支持模糊查询,有描述信息
- 前端js实现新闻列表数据动态滚动效果的函数
- 利用Java Reflection(反射)原理,在hibernate里面实现对单表、视图的动态组合查询
- 在SharePoint Designer 2007中使用交叉列表查询的数据视图
- C#--WinForm--实现查询列表的动态排序
- UGUI实现模糊查询动态生成列表功能
- Hibernate中通过HQL/JPQL查询的方式实现动态数据获取
- Spring Boot, MyBatis 实现动态传递表名称, 字段名称 查询数据
- ASP.NET网站权限设计实现(三)——套用JQuery EasyUI列表显示数据、分页、查询
- 用XML定制实现数据查询列表和数据分析及图表
- 动态列名数据视图实现
- spring多数据源的处理 mybatis实现跨库查询 实现Myibatis动态sql跨数据库的处理 Spring动态配置多数据源,即在大型应用中对数据进行切分,并且采用多个数据库实例进行管理,这样
- 137在搜索框中实现下拉列表效果(扩展知识:表格视图数据源为空数据时显示提示信息)
- java—将查询的结果封装成List<Map>与用回调函数实现数据的动态封装(44)
- ASP.NET网站权限设计实现(三)——套用JQuery EasyUI列表显示数据、分页、查询