如何合并2个共享点列表中的列并将其显示在ASP.NET GridView中?

巴什亚·拉詹(Bashya Rajan)

我有2个Sharepoint列表。我需要从两个列表中选择一些随机列,并将其显示在ASP.NET GRIDVIEW中。我已经使用Linq完成了这段代码。但我收到一条错误消息,指出该参数为null异常。我能知道这种错误的原因吗?

using System;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using Microsoft.SharePoint;
using Microsoft.SharePoint.Linq;
using System.Linq;
using System.Text.RegularExpressions;
using System.Text;
using System.IO;
using System.Diagnostics;


namespace SharePointProject3.VisualWebPart1
{
    public partial class VisualWebPart1UserControl : UserControl
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            string sQuery = string.Empty;
            string sWebUrl;
            SPListItemCollection objProductListItems = null;
            SPListItemCollection objOrderListItems = null;
            string sViewFields = string.Empty;

            sWebUrl = SPContext.Current.Site.Url;

            sQuery = "<OrderBy><FieldRef Name='Modified' Ascending='FALSE' /></OrderBy>";
            sViewFields = string.Concat("<FieldRef Name='ProductId'/>",
                                               "<FieldRef name= 'ProductName' />",

                                                     "<FieldRef name= 'ProductDescription' />");
            objProductListItems = GetListItems(sWebUrl, "Products", sQuery, sViewFields);

            sViewFields = string.Concat("<FieldRef Name='OrderId'/>",
                                              "<FieldRef name= 'Quantity' />",
                                                "<FieldRef name= 'ProductName' />");

            objOrderListItems = GetListItems(sWebUrl, "Orders", sQuery, sViewFields);

            var Orders = (from itemProduct in objOrderListItems.Cast<SPListItem>()
                          join itemOrder in objOrderListItems.Cast<SPListItem>()
                          on Convert.ToString(itemProduct["ProductName"]) equals Convert.ToString(itemOrder["ProductName"])
                          select new
                          {
                              ProductName = Convert.ToString(itemProduct["ProductName"]),
                              ProductDescription = Convert.ToString(itemProduct["ProductDescription"]),
                              OrderQuantity = Convert.ToString(itemOrder["Quantity"]),
                          }).ToList();

            if(Orders != null)
            {
                GridView1.DataSource = Orders;
                GridView1.DataBind();
            }


        }

        protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
        {

        }

          public static SPListItemCollection GetListItems(string sWebUrl, string sListName, string sQuery, string sviewFields)
        {
            SPListItemCollection objListItemCollection = null;

            SPSecurity.RunWithElevatedPrivileges(delegate()
            {
                using (SPSite objSite = new SPSite(sWebUrl))
                {
                    using (SPWeb objWeb = objSite.OpenWeb())
                    {
                        SPList objList = objWeb.Lists.TryGetList(sListName);
                        if (objList != null)
                        {
                            SPQuery objSPQuery = new SPQuery();
                            objSPQuery.Query = sQuery;
                            objSPQuery.ViewFields = sviewFields;
                            objListItemCollection = objList.GetItems(objSPQuery);
                        }
                    }
                }
            });
            return objListItemCollection;
          }
    }
}
扬·瓦尼克(Jan Vanek)

使用Linq2SharePoint不是一个好主意。有很多问题。包括性能问题。有时,它会产生奇怪的错误,并且很难对其进行调试。您在代码中使用CAML。CAML也可以加入。请参阅此处的操作方法。它由SharePoint本身处理,您将获得单个结果集。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在ASP.NET GridView中显示数据

来自分类Dev

在JavaScript的Asp.net标签中显示Gridview列总计

来自分类Dev

在asp.net的GridView列中显示子XML元素

来自分类Dev

用户控件中的gridview时,asp.net gridview scrollintoview

来自分类Dev

用户控件中的gridview时,asp.net gridview scrollintoview

来自分类Dev

ASP.NET GridView中的动态链接

来自分类Dev

GridView中的ASP.NET代码

来自分类Dev

在CodeBehind ASP NET中找不到GridView

来自分类Dev

ASP.Net-Gridview中的Bootstrap Popover

来自分类Dev

在asp.net中从GridView获取数据

来自分类Dev

在CodeBehind ASP NET中找不到GridView

来自分类Dev

在asp.net中的gridView中显示特定字段

来自分类Dev

如何在 Asp.Net 中制作 GridView 多列

来自分类Dev

ASP.NET中gridView上的条件文件列表?

来自分类Dev

显示来自ASP.Net GridView中的链接的图像

来自分类Dev

无法在asp.net的GridView中显示数据

来自分类Dev

显示来自ASP.Net GridView中的链接的图像

来自分类Dev

C#asp.net在gridview中显示图像

来自分类Dev

ASP.NET GridView无法在页面加载中显示

来自分类Dev

Gridview 表未显示在 asp.net webform 中

来自分类Dev

在asp.net中对gridview列进行排序

来自分类Dev

如何在asp.net的gridview中创建链接

来自分类Dev

如何在asp.net中清除GridView?

来自分类Dev

如何知道在asp.net gridView中单击按钮的位置

来自分类Dev

如何在asp.net中清除GridView?

来自分类Dev

如何从asp.net Webform中的GridView优化“ foreach”事件?

来自分类Dev

ASP .Net 如何识别 GridView 中的删除按钮?

来自分类Dev

如何在 ASP.NET 中的 GridView 中计算总价

来自分类Dev

只选择特定的列并在ASP.NET中的gridview控件中显示这些列

Related 相关文章

热门标签

归档