如何从foreach循环中的GridDataItems集合中排除GridDataItem?

时间:2018-02-03 07:11:59

标签: c# asp.net telerik telerik-grid

我在ASP.net项目中使用RadGrid控件。这是来自Telerik UI的网格控件。我有一个这个控件的实例,我想迭代它的SelectedItems。 它是这样的:

RadGrid mygrd
foreach (GridDataItem item in mygrd.SelectedItems)
{
//Do Something with item

}

mygrd.SelectedItems是GridDataItem的集合。每个GridDataItem都有在控件中定义的列。现在我想在其中一列中排除具有特定值的特定项目。像这样的东西:

foreach (GridDataItem item in mygrd.SelectedItems (Except if item["column1"] == "somethingSpecfic"))
{

//Do Something with item

}

如果存在,我看起来很方便,所以不要使用IF ELSE。我也想使用一些LINQ,但实际上where下没有SelectedItems方法。

1 个答案:

答案 0 :(得分:1)

只需使用条件语句:

foreach (GridDataItem item in mygrd.SelectedItems.Where(i => i["column1"] != ”somethingSpecific”)) { 
    //Do Something with item 
}

更新:

好的,这是LINQ版本,如评论中所述

pomAllotSharesFunction: function(shares){

    var browser = this;
    browser.waitForElementVisible('@effectiveDate', timeInMilisec);
    browser.setValue('@effectiveDate', shares.allotment.effectiveDate);

    if(shares.allotment.incorporatorShares !== ""){
        var check = shares.allotment.incorporatorShares == 1 ? 'check' : 'uncheck';
        browser.ecorpCheckbox('@incorporatorShares', check);
    }

    browser.setValue('@quantity', shares.source.quantity);

    if(shares.source.cashConsideration !== ""){
        browser.setValue('@cashConsideration', shares.source.cashConsideration);
    }

    var elementLocator = '#ContactModal2-table > tbody > tr' + '[data-contactname="' + shares.target.shareholder + '"]';
    browser.ecorpSelectShareholder('@targetShareholder', elementLocator);