基于SharePoint构建ASP.net自定义内网:拉取列表数据展示方法
嘿,你这个需求我熟——用SharePoint Designer结合ASP.NET来实现完全没问题,我给你整理了一套能直接上手的启动流程,一步步来就行:
第一步:先把准备工作做扎实
- 先确认权限:得有SharePoint Designer的编辑权限,还有目标列表的读取权限(至少能读数据才行)
- 打开SharePoint Designer,连接到你的Office 365 SharePoint站点
- 左侧导航栏点「列表和库」,找到你那个带ID、name、function字段的列表,一定要记下来它的内部名称——别用显示名称,万一有空格或特殊字符会踩坑,在列表设置的「列」选项里就能看到内部名称
第二步:创建/编辑ASPX页面
- 在SharePoint Designer里,从「文件」菜单新建一个ASPX表单页面,或者直接打开你要改造的现有页面
- 切换到「代码视图」(别停在设计视图,咱们要写自定义代码)
第三步:写ASP.NET代码拉取并展示数据
在页面的<asp:Content>主体区块里,先加后台代码部分(放在<script runat="server">标签里):
using Microsoft.SharePoint; using System.Data; using System.Text; protected void Page_Load(object sender, EventArgs e) { // 获取当前站点上下文 using (SPSite site = SPContext.Current.Site) { using (SPWeb web = site.OpenWeb()) { // 这里替换成你刚才记的列表内部名称 SPList targetList = web.Lists.TryGetList("YourListInternalName"); if (targetList != null) { // 指定要拉取的字段,用内部名称! SPQuery query = new SPQuery(); query.ViewFields = "<FieldRef Name='ID' /><FieldRef Name='name' /><FieldRef Name='function' />"; query.ViewFieldsOnly = true; // 只返回需要的字段,提升加载速度 SPListItemCollection items = targetList.GetItems(query); // 手动构建HTML表格,比GridView更灵活 StringBuilder tableHtml = new StringBuilder(); tableHtml.Append("<table border='1' cellpadding='6' cellspacing='0' style='border-collapse: collapse;'>"); // 表头 tableHtml.Append("<tr><th>ID</th><th>姓名</th><th>职能</th></tr>"); foreach (SPListItem item in items) { tableHtml.Append("<tr>"); // 注意字段值可能为空,加个空判断更稳妥 tableHtml.Append("<td>" + (item["ID"] ?? "") + "</td>"); tableHtml.Append("<td>" + (item["name"] ?? "") + "</td>"); tableHtml.Append("<td>" + (item["function"] ?? "") + "</td>"); tableHtml.Append("</tr>"); } tableHtml.Append("</table>"); // 把生成的表格输出到页面控件 litTable.Text = tableHtml.ToString(); } else { litTable.Text = "⚠️ 未找到目标列表,请检查列表内部名称是否正确"; } } } }
然后在HTML部分加一个Literal控件,用来承载生成的表格:
<asp:Literal ID="litTable" runat="server"></asp:Literal>
第四步:测试和调整
- 保存页面后,要么在SharePoint Designer里点「预览」,要么直接在浏览器里访问这个ASPX页面的URL
- 如果遇到权限报错,先检查你的站点和列表权限;如果数据不显示,优先核对列表内部名称、字段内部名称的拼写(大小写敏感!)
额外小提示
- 要是不想写代码,也可以用SharePoint的数据视图Web部件:在设计视图里插入,可视化配置要显示的字段,操作更简单,但自定义程度不如代码
- 注意:上面的代码适配经典版SharePoint,如果你用的是现代站点,可能需要换成REST API或者SPFx,但既然你用SharePoint Designer,应该是经典站点环境,这套代码没问题
内容的提问来源于stack exchange,提问作者Code Pro
相关产品推荐
相关产品推荐

