C # DataView не фильтруется с RowFilter - PullRequest
0 голосов
/ 01 ноября 2018

У меня есть DataTable, который не будет фильтроваться с помощью RowFilter, я вернул его к основам, но все еще не получил результат, согласно документации Microsoft *1002*, это должно работать ...

Environment_Details = Таблица, в которой есть все записи

Item_Type_ID = Это не первичный ключ, это просто свойство строки (1 = приложение, 2 = сервер)

Parent_ID = дочерние: родительские отношения между полем Parent_ID и полем EI_ID (идентификатор элемента среды)

row = Текущая строка Environment_Details выполнена в отдельном коде, эта функция попадает только в строки сервера (Item_Type_ID = 2), поэтому никогда не будет случая, когда приложения вызывают этот метод.

Server_Check = Просто пройти через

public ActionResult Server_Details(bool Server_Check, DataRow row, DataTable Environment_Details)
{
    var model = new 
    ProjectOffice.Models.Forms.ServiceCatalogue.Environment.Delete_Environment_Item_Model();

    DataView Application_List = new DataView(Environment_Details);
    Application_List.RowFilter = "Item_Type_ID = 1";
    //Application_List.RowFilter = "Parent_ID = {0}", row["EI_ID"]; //Removed for simplicity

    ViewBag.row = row;
    ViewBag.Application_List = Application_List;
    ViewBag.Environment_ID = row["Environment_ID"];
    ViewBag.Server_Check = Server_Check;


    return PartialView("~/Views/Forms/ServiceCatalogue/Server/Server_Details.cshtml", model);
}

По моему мнению, тогда:

@{
    var Application_List = ViewBag.Application_List;

    if (Application_List.Table.Rows.Count > 0)
    {
        bool check = false;

        foreach (var App_List_Item in Application_List.Table.Rows)
        {
            @:<div class="panel-body">
                Html.RenderAction("Application_Details", "Application", new { Application_Check = check, row = App_List_Item, Environment_ID = ViewBag.Environment_ID });
            @:</div>
            check = true;
        }
    }
}

Мои результаты просто возвращают полный набор данных, который включает в себя 2 сервера, однако он должен просто возвращать только приложения, а при применении второго фильтра он должен возвращать только те приложения, которые относятся к этому серверу (строке).

Некоторые поты:

Должен ли я использовать ViewData вместо ViewBag?

Я неправильно написал цикл for?

Неправильно ли значение rowFilter? (должно быть: "Item_Type_ID = {0}", 1)

Любая помощь приветствуется ...

...