//filter data for grid private List <ViewTable> FilterDataIntoGrid(int code) { //get all data of the 'CopyrightKind' Klr030List = _connector.GetList <KlR030>(urlDataGrid); //stop perform if data is not exist if (Klr030List == null) { return(new List <ViewTable>()); } //filter data by parameter 'code' Klr030List = Klr030List.Where(item => item.R031 == code).ToList(); List <ViewTable> filteredData = new List <ViewTable>(); //initialize data for grid foreach (var item in Klr030List) { filteredData.Add(new ViewTable { Code = item.R030, NameUk = item.KlR030tr?.SingleOrDefault(i => i?.Lang == Langs[0])?.R030Name ?? item.R030Name, NameRu = item.KlR030tr?.SingleOrDefault(i => i?.Lang == Langs[1])?.R030Name, NameEn = item.KlR030tr?.SingleOrDefault(i => i?.Lang == Langs[2])?.R030Name, klrCountry = ddlFilterKlr030.SelectedItem.Text, }); } return(filteredData); }
//show data for bottom panel private void gvCopyrightKindList_CellClick(object sender, GridViewCellEventArgs e) { if (!(gridKlr030List.CurrentRow.DataBoundItem is ViewTable currentRow)) { return; } if (!int.TryParse(currentRow.Code, out int code)) { return; } string strCode = code.ToString(); indexSelectedElem = Klr030List.FindIndex(el => el.R030 == strCode); DataUpdateForBottomPanel(strCode); }
//action 'Save' object to grid private void btnSave_Click(object sender, EventArgs e) { string codeIAfter = string.Empty; if (btnSaveKlr030.Text == "Додати") { //send created object KlR030 result = CheckAfterCreate(klr030Data); codeIAfter = result.R030; //update data for grid gridKlr030List.DataSource = HandleDataForGrid(urlDataGrid); indexSelectedElem = Klr030List.FindIndex(el => el.R031 == result.R031); //select certain item into grid gridKlr030List.CurrentRow = gridKlr030List.Rows[indexSelectedElem]; btnSaveKlr030.Text = "Зберегти"; } else if (btnSaveKlr030.Text == "Зберегти") { //save changes KlR030 result = CheckAfterUpdate(klr030Data); codeIAfter = result.R030; //save last selected item indexSelectedElem = gridKlr030List.CurrentRow.Index; //update data for grid gridKlr030List.DataSource = HandleDataForGrid(urlDataGrid); //select certain item into grid gridKlr030List.CurrentRow = gridKlr030List.Rows[indexSelectedElem]; } DataUpdateForBottomPanel(codeIAfter); //stop perform if elements have 'Enabled' -> true if (ControlEnabledActiveElements) { return; } //change 'Enabled' state for elements ControlEnabledActiveElements = true; }