关于sharepoint列表的一些操作
首先声明,以下内容是总结别人的,所有权不属本人,如有雷同纯属有缘。
废话少说,言归正转。
1、对List的理解
sharepoint里的列表相当于数据库中的表,每个List有多个栏(Column),相当于表里的字段(列);
可以将一个List理解为一张数据表。
List创建的时候会有许多默认的字段,如标题、创建日期、创建者等。List里的每个栏(Column)都有
两个名字,一个叫做Title,显示列表字段的名称,一个是InternalName,列表字段的ID。
注:纯属个人理解
2、获取列
假设list为Sharepoint网站的某一个列表,用代码获取Title和InternalName
2.1获取list所有字段的Title
string field = string.Empty;
foreach (var f in list.Fields)
{
field += f.ToString()+ "<br/>";
}
2.2获取list所有字段的InternalName
string field = string.Empty;
foreach (var f in list.Fields)
{
field += list.Fields[f.ToString()].InternalName + "<br/>";
}
如果想知道某一列的InternalName,可以通过修改此方法得到。具体如下:
string internalName=List.Fields["标题"];
2.3获取某一列
SPField field =list.Fields["标题"];
2.4将某一列绑定到数据控件上
以GridView为例,比如绑定创建日期:
前台代码:
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false">
<Columns>
<asp:BoundField HeaderText="添加日期" DataField="Created" />
</Columns>
</asp:GridView>
后台代码:
GridView1.DataSource = GridView1.GetItems().GetDataTable();
GridView1.DataBind();
如果想让GridView只显示List的前几行数据,必须加一个查询,可以这么写
SPQuery query = new SPQuery();
query.RowLimit=10;//显示多少行数据,在这里设置
GridView1.DataSource = GridView1.GetItems(query).GetDataTable();
GridView1.DataBind();
3、获取列表项连接地址
当前列表项为item,Item的详细连接地址为url,
url = list.Forms[PAGETYPE.PAGE_DISPLAYFORM].ServerRelativeUrl+ "?ID=" + item.ID.ToString(),