You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 09:59:33