如何在Grid View中显示SP Online文档库项目并使用CSOM下载文档

时间:2019-03-26 17:27:51

标签: c# asp.net csom

在SharePoint提供的托管应用程序中,我想在Gridview中显示带有元数据的SharePoint在线文档库文档。在Gridview中单击此文档名称时,我要下载文档。 如何在Grid View中显示SP Online文档库项目,以及如何使用CSOM代码下载文档。

当“自动生成”列为False时,无法将Listitemcollection绑定到gridview。认为存在错误标题和其他字段。

尝试将其绑定到数据表。但无法将文档名称设置为超级链接或可点击控件

 protected void BtnSearch_Click(object sender, EventArgs e)
    {


        using (var ctx = TokenHelper.GetClientContextWithAccessToken(siteUri.ToString(), accessToken))
        {

            List<ObjectA> _listA = new List<ObjectA>();

            Web oWebsite = ctx.Web;
            ctx.Load(oWebsite);
            ctx.ExecuteQuery();
            ctx.Load(oWebsite.CurrentUser);
            ctx.ExecuteQuery();

            // To Get Site Tile
            string strtitle = ctx.Web.Title;
            // To Getcurrent logged user
            string strlog = ctx.Web.CurrentUser.LoginName;

            List list = oWebsite.Lists.GetByTitle("Sampledocuments");   //.GetById(new Guid("ebe2bc9e-4f04-46fb-9a41-5baf16c1da57"));
            var q = new CamlQuery() { ViewXml = "<View><Query><Where><And><Eq><FieldRef Name='Account_x002d_Name' /><Value Type='Text'>data</Value></Eq><Eq><FieldRef Name='SalesForce_x002d_ID' /><Value Type='Text'>daat</Value></Eq></And></Where></Query></View>" };
            Microsoft.SharePoint.Client.ListItemCollection items = list.GetItems(q);
          //  Microsoft.SharePoint.Client.ListItemCollection it = list.GetItems(q);

            ctx.Load(list);

            ctx.Load(items);
            ctx.ExecuteQuery();





            DataTable dt = new DataTable();



            dt.Columns.Add("Item ID", typeof(int));
            dt.Columns.Add("Item Title", typeof(string));
            dt.Columns.Add("Account Name", typeof(string));
            dt.Columns.Add("Sales Force ID", typeof(string));
            dt.Columns.Add("URL", typeof(string));
            dt.Columns.Add("FileRef", typeof(string));
            dt.Columns.Add("FileDirRef", typeof(string));


                foreach (Microsoft.SharePoint.Client.ListItem item in items)
                {
                    DataRow dr = dt.NewRow();
                    dr["Item ID"] = item["ID"];
                    dr["Item Title"] = item["Title"] != null ? item["Title"].ToString() : "";
                    dr["Account Name"] = item["Account_x002d_Name"] != null ? item["Account_x002d_Name"].ToString() : "";
                    dr["Sales Force ID"] = item["SalesForce_x002d_ID"] != null ? item["SalesForce_x002d_ID"].ToString() : "";
                    dr["URL"] = item["FileLeafRef"] != null ? item["FileLeafRef"].ToString() : "";
                    dr["FileRef"] = item["FileRef"] != null ? item["FileRef"].ToString() : "";
                    dr["FileDirRef"] = item["FileDirRef"] != null ? item["FileDirRef"].ToString() : "";
                  //  FileLeafRef FileRef   FileDirRef
                    dt.Rows.Add(dr);
                }


                GV.DataSource = dt;
                GV.DataBind();

0 个答案:

没有答案