WSS3SDK之:如何从列表中获取数据
2009-01-17 18:11
453 查看
如果要从列表中取数据,我们可以从实例化SPWeb开始深入,通过对象模型得到列表的SPListItemCollection。您返回后,当我们得到所有列表项目的集合后,可以通过迭代遍历整个集合,并使用索引(indexer)返回特定字段(或叫做栏,field)的值。
下面的例子返回指定事件列表的所有项。它假定存在一个文本框,可以用来输入事件列表的名称。
VB
Dim mySite As SPWeb = SPContext.Current.Web
Dim listItems As SPListItemCollection = mySite.Lists(TextBox1.Text).Items
Dim i As Integer
For i = 0 To listItems.Count - 1
Dim item As SPListItem = listItems(i)
Response.Write(SPEncode.HtmlEncode(item("Title").ToString()) & " :: " _
& SPEncode.HtmlEncode(item("Location").ToString()) & " :: " _
& SPEncode.HtmlEncode(item("Begin").ToString()) & " :: " _
& SPEncode.HtmlEncode(item("End").ToString()) & "<BR>")
Next i
C#
SPWeb mySite = SPContext.Current.Web;
SPListItemCollection listItems = mySite.Lists[TextBox1.Text].Items;
for (int i=0;i<listItems.Count;i++)
{
SPListItem item = listItems[i];
Response.Write(SPEncode.HtmlEncode(item["Title"].ToString()) + " : " +
SPEncode.HtmlEncode(item["Location"].ToString()) + " : " +
SPEncode.HtmlEncode(item["Begin"].ToString()) + " : " +
SPEncode.HtmlEncode(item["End"].ToString()) + "<BR>");
}
上面的例子需要引用Microsoft.SharePoint和Microsoft.SharePoint.Utilities命名空间。
在例子中,索引既用在返回用户指定的列表,又用于返回列表中特定的项。为了返回该项目, indexers必须指定每一栏的名称,来得到对应栏的值。在本例中,所有的栏名称来自一个普通的事件列表。
您也可以使用SPList类的GetItems方法返回的某列表的数据项的一个子集。下面的例子只返回Stock栏的值超过100 的标题栏的内容。
VB
Dim mySite As SPWeb = SPContext.Current.Web
Dim list As SPList = mySite.Lists("Books")
Dim query As New SPQuery()
query.Query = "<Where><Gt><FieldRef Name='Stock'/><Value Type='Number'>100</Value></Gt></Where>"
Dim myItems As SPListItemCollection = list.GetItems(query)
Dim item As SPListItem
For Each item In myItems
Response.Write(SPEncode.HtmlEncode(item("Title").ToString()) & "<BR>")
Next item
C#
SPWeb mySite = SPContext.Current.Web;
SPList list = mySite.Lists["Books"];
SPQuery query = new SPQuery();
query.Query = "<Where><Gt><FieldRef Name='Stock'/><Value Type='Number'>100</Value></Gt></Where>";
SPListItemCollection myItems = list.GetItems(query);
foreach (SPListItem item in myItems)
{
Response.Write(SPEncode.HtmlEncode(item["Title"].ToString()) + "<BR>");
}
上面的例子需要引用Microsoft.SharePoint和Microsoft.SharePoint.Utilities命名空间。
该例子假设存在一个Books列表,包含了一个名为Stock的列,类型为数值。
前面的示例使用构造器实例化了一个SPQuery对象。然后为query对象的Query属性指定了一个协同应用标记语言核心架构(CAML,Collaborative Application Markup Language Core Schemas)格式的字符串,指定query的XML内容(换句话说,就是Where元素)。然后,query对象将传递给在GetItems方法,来返回和显示列表项。
跨列表查询
您可以执行跨列表查询来使查询更有效率,跨越多个网站获取数据。以下示例使用SPSiteDataQuery类来定义查询,然后使用GetSiteData方法返回所有Status栏的值等于“Completed” 的列表项。
VB
Dim webSite As SPWeb = SPContext.Current.Web
Dim query As New SPSiteDataQuery()
query.Lists = "<Lists ServerTemplate=""107"" />"
query.Query = "<Where><Eq><FieldRef Name=""Status""/>" + "<Value Type=""Text"">Completed</Value></Eq></Where>"
Dim items As System.Data.DataTable = webSite.GetSiteData(query)
Dim item As System.Data.DataRow
For Each item In items
Response.Write((SPEncode.HtmlEncode(item("Title").ToString()) + "<BR>"))
Next item
C#
SPWeb webSite = SPContext.Current.Web;
SPSiteDataQuery query = new SPSiteDataQuery();
query.Lists = "<Lists ServerTemplate=/"107/" />";
query.Query =
"<Where><Eq><FieldRef Name=/"Status/"/>" +
"<Value Type=/"Text/">Completed</Value></Eq></Where>";
System.Data.DataTable items = webSite.GetSiteData(query);
foreach (System.Data.DataRow item in items)
{
Response.Write(SPEncode.HtmlEncode(item["Title"].ToString()) + "<BR>");
}
上面的例子需要引用Microsoft.SharePoint和Microsoft.SharePoint.Utilities命名空间。
下面的例子返回指定事件列表的所有项。它假定存在一个文本框,可以用来输入事件列表的名称。
VB
Dim mySite As SPWeb = SPContext.Current.Web
Dim listItems As SPListItemCollection = mySite.Lists(TextBox1.Text).Items
Dim i As Integer
For i = 0 To listItems.Count - 1
Dim item As SPListItem = listItems(i)
Response.Write(SPEncode.HtmlEncode(item("Title").ToString()) & " :: " _
& SPEncode.HtmlEncode(item("Location").ToString()) & " :: " _
& SPEncode.HtmlEncode(item("Begin").ToString()) & " :: " _
& SPEncode.HtmlEncode(item("End").ToString()) & "<BR>")
Next i
C#
SPWeb mySite = SPContext.Current.Web;
SPListItemCollection listItems = mySite.Lists[TextBox1.Text].Items;
for (int i=0;i<listItems.Count;i++)
{
SPListItem item = listItems[i];
Response.Write(SPEncode.HtmlEncode(item["Title"].ToString()) + " : " +
SPEncode.HtmlEncode(item["Location"].ToString()) + " : " +
SPEncode.HtmlEncode(item["Begin"].ToString()) + " : " +
SPEncode.HtmlEncode(item["End"].ToString()) + "<BR>");
}
上面的例子需要引用Microsoft.SharePoint和Microsoft.SharePoint.Utilities命名空间。
在例子中,索引既用在返回用户指定的列表,又用于返回列表中特定的项。为了返回该项目, indexers必须指定每一栏的名称,来得到对应栏的值。在本例中,所有的栏名称来自一个普通的事件列表。
您也可以使用SPList类的GetItems方法返回的某列表的数据项的一个子集。下面的例子只返回Stock栏的值超过100 的标题栏的内容。
VB
Dim mySite As SPWeb = SPContext.Current.Web
Dim list As SPList = mySite.Lists("Books")
Dim query As New SPQuery()
query.Query = "<Where><Gt><FieldRef Name='Stock'/><Value Type='Number'>100</Value></Gt></Where>"
Dim myItems As SPListItemCollection = list.GetItems(query)
Dim item As SPListItem
For Each item In myItems
Response.Write(SPEncode.HtmlEncode(item("Title").ToString()) & "<BR>")
Next item
C#
SPWeb mySite = SPContext.Current.Web;
SPList list = mySite.Lists["Books"];
SPQuery query = new SPQuery();
query.Query = "<Where><Gt><FieldRef Name='Stock'/><Value Type='Number'>100</Value></Gt></Where>";
SPListItemCollection myItems = list.GetItems(query);
foreach (SPListItem item in myItems)
{
Response.Write(SPEncode.HtmlEncode(item["Title"].ToString()) + "<BR>");
}
上面的例子需要引用Microsoft.SharePoint和Microsoft.SharePoint.Utilities命名空间。
该例子假设存在一个Books列表,包含了一个名为Stock的列,类型为数值。
前面的示例使用构造器实例化了一个SPQuery对象。然后为query对象的Query属性指定了一个协同应用标记语言核心架构(CAML,Collaborative Application Markup Language Core Schemas)格式的字符串,指定query的XML内容(换句话说,就是Where元素)。然后,query对象将传递给在GetItems方法,来返回和显示列表项。
跨列表查询
您可以执行跨列表查询来使查询更有效率,跨越多个网站获取数据。以下示例使用SPSiteDataQuery类来定义查询,然后使用GetSiteData方法返回所有Status栏的值等于“Completed” 的列表项。
VB
Dim webSite As SPWeb = SPContext.Current.Web
Dim query As New SPSiteDataQuery()
query.Lists = "<Lists ServerTemplate=""107"" />"
query.Query = "<Where><Eq><FieldRef Name=""Status""/>" + "<Value Type=""Text"">Completed</Value></Eq></Where>"
Dim items As System.Data.DataTable = webSite.GetSiteData(query)
Dim item As System.Data.DataRow
For Each item In items
Response.Write((SPEncode.HtmlEncode(item("Title").ToString()) + "<BR>"))
Next item
C#
SPWeb webSite = SPContext.Current.Web;
SPSiteDataQuery query = new SPSiteDataQuery();
query.Lists = "<Lists ServerTemplate=/"107/" />";
query.Query =
"<Where><Eq><FieldRef Name=/"Status/"/>" +
"<Value Type=/"Text/">Completed</Value></Eq></Where>";
System.Data.DataTable items = webSite.GetSiteData(query);
foreach (System.Data.DataRow item in items)
{
Response.Write(SPEncode.HtmlEncode(item["Title"].ToString()) + "<BR>");
}
上面的例子需要引用Microsoft.SharePoint和Microsoft.SharePoint.Utilities命名空间。
相关文章推荐
- Vuforia SDK中如何获取每一帧图片byte数组数据
- WSS3SDK之:如何获取网站和站点集对象
- WSS3SDK之:如何往列表中添加一栏
- 问题:客户端从服务器分页获取列表,如何保证流量最少,且客户端和Server数据的一致性?
- WSS3SDK之:如何创建或删除列表
- JSP 如何获取下拉列表的选中的值是数据库表的对应数据
- QuickFlow-如何通过QFD and ExecuteCode获取其他列表数据
- jquery用ajax方式从后台获取json数据后如何将内容填充到下拉列表
- WSS3SDK之:如何在多个网站中添加或删除一个列表
- jquery用ajax方式从后台获取json数据后如何将内容填充到下拉列表
- sharepoint 2013 如何创建一个webservice获取sharepoint列表数据
- jquery用ajax方式从后台获取json数据后如何将内容填充到下拉列表
- WSS3SDK之:如何添加和删除列表项
- WSS3SDK之:如何添加内容类型至列表
- jquery用ajax方式从后台获取json数据后如何将内容填充到下拉列表
- springMVC笔记:jsp页面获取后台数据记录列表
- C#如何从DataGridView控件数据,转成获取DataTable
- 如何获取linux下的进程pid列表
- 如何在H264数据中获取PTS?
- 获取LISTVIEW列表中的数据