Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/sharepoint/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在将方法绑定到asp.net repeater之前,在sharepoint SPListItemCollection中写入条件语句_Asp.net_Sharepoint_Sharepoint 2010 - Fatal编程技术网

在将方法绑定到asp.net repeater之前,在sharepoint SPListItemCollection中写入条件语句

在将方法绑定到asp.net repeater之前,在sharepoint SPListItemCollection中写入条件语句,asp.net,sharepoint,sharepoint-2010,Asp.net,Sharepoint,Sharepoint 2010,我的情况是这样的: 我有一个函数,返回一个值作为SPListItemCollection,并将此函数绑定到一个中继器。 我的问题是如何在返回值之前进行一些条件格式设置 SPListItemCollection GetListItems() { SPWeb curWeb = SPContext.Current.Site.RootWeb; string siteUrl = SPContext.Current.Web.Url; SPListItemCollection curItems = GetDe

我的情况是这样的:

我有一个函数,返回一个值作为SPListItemCollection,并将此函数绑定到一个中继器。 我的问题是如何在返回值之前进行一些条件格式设置

SPListItemCollection GetListItems()
{
SPWeb curWeb = SPContext.Current.Site.RootWeb;
string siteUrl = SPContext.Current.Web.Url;
SPListItemCollection curItems = GetDep(ListName, department);
// write condition here so that it checks if the item count is higher or 
//lower than a specified number.

return curItems;
}

谢谢你的帮助。

我不能100%确定你在回来之前想做什么。例如,如果只想检查resultItem.Count是否大于100,可以执行以下操作:

    SPListItemCollection GetListItems()
    {
        SPWeb curWeb = SPContext.Current.Site.RootWeb;
        string siteUrl = SPContext.Current.Web.Url;
        SPListItemCollection curItems = GetDep(ListName, department);

        if (curItems.Count > 100)
        {
            // change the items or do whatever you want. after that, return:
            foreach(SPListItem item in curItems)
            {
                //format/change
            }
            return curItems;
        }
        // return, without any changes
        return curItems;
    }
试一下

    SPListItemCollection GetListItems()
    {
    SPWeb curWeb = SPContext.Current.Site.RootWeb;
    string siteUrl = SPContext.Current.Web.Url;
    SPListItemCollection curItems = GetDep(ListName, department);

        var itemsForDepartment = curItems.GetDataTable().Rows.Where(r => r["Department"] == department); // you can try to do this is caml too 
        if(itemsForDepartment.Count > itemCount) {
         // insert the "show me more" link
        } 
    var itemsForDepartment = itemsForDepartment.Take(itemCount); 
    // bind itemsForDepartment to a Repeater
    return curItems;
    }

我没有编译这段代码,所以您必须纠正一些语法错误

格式化是一个渲染问题,而不是用于渲染的数据。无论您是使用Sharepoint、XML还是数据表,这都无关紧要。你为什么提到Sharepoint?好吧,让我来解释一下。假设field Deparment包含来自同一部门(如IT、HR等)的10多个项目,我只想显示10个与查询匹配的项目,然后显示一条消息,说明还有更多项目要查看。这可以是一个链接,一旦你点击它,它就会重定向到列表。我希望这能更好地解释这一点。谢谢你之前的回答。嗨,麦,非常感谢你的回答。我很抱歉把它像这样零碎地放在一起,我认为这会很容易,但这是我的情况。我有列表,我想根据过滤部门显示项目。现在,用户必须指定要从特定部门查看的项目数量。如果用户指定10,则只显示10,并显示一个链接,该链接将发送用户查看整个列表。因此,这些项目显示在中继器中。我希望这能更好地解释我想要实现的目标。我假设您在用户界面上有一些控件,用于收集以下参数:department、要返回的最大项目数,假设它们是下拉列表,其中包含一些您可以在本问题范围之外预定义的值。让我更新上面的答案