private void UpdatePOSelection() { var allPOsList = (List <usp_GetPurchaseOrderList_Result>)ObjectDataSourcePOs.Select(); var selectedPONumbers = PurchaseOrdersGrid.GetSelectedFieldValues(PurchaseOrdersGrid.KeyFieldName); _selectedPOs.Clear(); _selectedPOs.AddRange(allPOsList.Where(p => selectedPONumbers.Any(sp => (int)sp == p.PurchaseOrderNumber)).ToList()); //SelectedPurchaseOrdersGrid.DataSource = _selectedPOs; //SelectedPurchaseOrdersGrid.DataBind(); }
//private void SelectChild(int parent, int child) //{ // var childRowCount = PurchaseOrdersGrid.GetChildRowCount(parent); // PurchaseOrdersGrid. //} protected void Grid_HtmlRowPrepared(object sender, ASPxGridViewTableRowEventArgs e) { if (e.RowType != GridViewRowType.Group) { return; } var checkBox = (ASPxCheckBox)PurchaseOrdersGrid.FindGroupRowTemplateControl(e.VisibleIndex, "groupCheckBox"); checkBox.Checked = GetChecked(e.VisibleIndex); }
protected bool GetChecked(int visibleIndex) { for (int i = 0; i < PurchaseOrdersGrid.GetChildRowCount(visibleIndex); i++) { bool isRowSelected = PurchaseOrdersGrid.Selection.IsRowSelectedByKey( ((usp_GetPurchaseOrderList_Result)PurchaseOrdersGrid.GetChildRow(visibleIndex, i)).PurchaseOrderNumber); if (!isRowSelected) { return(false); } } return(true); }
protected void PurchaseOrdersGrid_OnSelectionChanged(object sender, EventArgs e) { return; var allPOsList = (List <usp_GetPurchaseOrderList_Result>)ObjectDataSourcePOs.Select(); var selectedPONumbers = PurchaseOrdersGrid.GetSelectedFieldValues(PurchaseOrdersGrid.KeyFieldName); _selectedPOs = allPOsList.Where(p => selectedPONumbers.Any(sp => (int)sp == p.PurchaseOrderNumber)).ToList(); //foreach (var selectedPONumber in PurchaseOrdersGrid.GetSelectedFieldValues(PurchaseOrdersGrid.KeyFieldName)) //{ // //var selectedPO = PurchaseOrdersGrid.GetRow(PurchaseOrdersGrid.Get); //} //var x = PurchaseOrdersGrid.Selection.Count; //SelectedPurcaseOrderCount.Text = x.ToString(); SelectedPurchaseOrdersGrid.DataSource = _selectedPOs; }
protected void Grid_CustomCallback(object sender, ASPxGridViewCustomCallbackEventArgs e) { var parameters = e.Parameters.Split(';'); var index = int.Parse(parameters[0]); var fieldName = parameters[1]; var isGroupRowSelected = bool.Parse(parameters[2]); System.Collections.ObjectModel.ReadOnlyCollection <GridViewDataColumn> groupedCols = PurchaseOrdersGrid.GetGroupedColumns(); if (groupedCols[groupedCols.Count - 1].FieldName == fieldName) { // Check groupcolumn is the lowest level group column. PurchaseOrdersGrid.ExpandRow(index, true); // ensures consistent behavior for (int i = 0; i < PurchaseOrdersGrid.GetChildRowCount(index); i++) { var row = (usp_GetPurchaseOrderList_Result)PurchaseOrdersGrid.GetChildRow(index, i); PurchaseOrdersGrid.Selection.SetSelectionByKey(row.PurchaseOrderNumber, isGroupRowSelected); } } else { // Checked row is not the lowest group column. Recursively iterate (requires row expansion). int gidx = -1; foreach (var gcol in groupedCols) { if (gcol.FieldName == fieldName) { gidx = groupedCols.IndexOf(gcol); break; } } var checkedDataRow = (usp_GetPurchaseOrderList_Result)PurchaseOrdersGrid.GetRow(index); var parentFieldnameValuesDict = new Dictionary <string, object>(); string parentFieldName; object parentKeyValue; for (int i = gidx; i >= 0; i--) { var pcol = groupedCols[i]; parentFieldName = pcol.FieldName; parentKeyValue = GetPropValue(checkedDataRow, parentFieldName); parentFieldnameValuesDict.Add(parentFieldName, parentKeyValue); } bool isRowChildOfClickedGroup; PurchaseOrdersGrid.ExpandRow(index, true); for (int i = 0; i <= PurchaseOrdersGrid.VisibleRowCount - 1; i++) { var row = (usp_GetPurchaseOrderList_Result)PurchaseOrdersGrid.GetRow(i); isRowChildOfClickedGroup = true; // Check if row belongs to checked group. foreach (var kvp in parentFieldnameValuesDict) { parentFieldName = kvp.Key; parentKeyValue = kvp.Value; if (GetPropValue(row, parentFieldName).Equals(parentKeyValue) == false) { isRowChildOfClickedGroup = false; break; } } if (isRowChildOfClickedGroup) { // Row meets all criteria for belonging to the clicked group, change selected state. PurchaseOrdersGrid.Selection.SetSelectionByKey(row.PurchaseOrderNumber, isGroupRowSelected); } } } UpdatePOSelection(); }