protected void gvItemTypeFieldPreference_ItemDataBound(object sender, GridItemEventArgs e) { var dataItem = e.Item.DataItem; if (e.Item is GridDataItem) { foreach (ItemTypeData itemTypeData in ItemTypeDataList) { var rowArray = ((global::System.Data.DataRowView)(dataItem)).Row.ItemArray; ItemFieldTypeData itemFieldTypeData = (ItemFieldTypeData)(rowArray.Where(i => (i is ItemFieldTypeData) && ((ItemFieldTypeData)i).ItemTypeId == itemTypeData.Id).FirstOrDefault()); CheckBox chk = e.Item.FindControl(itemTypeData.Id.ToString()) as CheckBox; if (chk != null) { chk.Checked = itemFieldTypeData.IsSelected; chk.Enabled = !itemFieldTypeData.IsSelected; chk.Attributes.Add("data-fieldid", itemFieldTypeData.FieldId.ToString(CultureInfo.InvariantCulture)); chk.Attributes.Add("data-itemtypeid", itemFieldTypeData.ItemTypeId.ToString(CultureInfo.InvariantCulture)); } } } if (e.Item is GridGroupHeaderItem) { GridGroupHeaderItem item = (GridGroupHeaderItem)e.Item; DataRowView groupDataRow = (DataRowView)e.Item.DataItem; item.DataCell.Text = groupDataRow["GroupName"].ToString(); } }
/// <summary> /// Gets the item type fields preferences. /// </summary> /// <returns></returns> public DataTable GetItemTypeFieldsPreferences() { DataTable ItemTypeTable = new DataTable(); List <ItemTypeData> allItemTypes = GetAllItemTypeData(); List <Data.ItemTypeField> allItemTypeFields = DataContext.ItemTypeFields.ToList(); ItemTypeTable.Columns.Add(new DataColumn("Field", typeof(string))); ItemTypeTable.Columns.Add(new DataColumn("GroupId", typeof(string))); ItemTypeTable.Columns.Add(new DataColumn("GroupName", typeof(string))); ItemTypeTable.Columns.Add(new DataColumn("ProjectUsingField", typeof(string))); ItemTypeTable.Columns.Add(new DataColumn("ItemTypeUsingField", typeof(string))); foreach (ItemTypeData itemTypeData in allItemTypes) { ItemTypeTable.Columns.Add(new DataColumn(itemTypeData.Name, typeof(ItemFieldTypeData))); } List <FieldData> allFields = GetAllFieldData(allItemTypeFields); DataRow[] dataRows = new DataRow[allFields.Count]; int i = 0; foreach (FieldData fieldData in allFields) { dataRows[i] = ItemTypeTable.NewRow(); dataRows[i]["Field"] = fieldData.FieldName; dataRows[i]["GroupId"] = fieldData.GroupId; dataRows[i]["GroupName"] = fieldData.GroupName; dataRows[i]["ProjectUsingField"] = fieldData.ProjectUsingField; dataRows[i]["ItemTypeUsingField"] = fieldData.ItemTypeUsingField; foreach (ItemTypeData itemTypeData in allItemTypes) { ItemFieldTypeData itemFieldTypeData = new ItemFieldTypeData(); itemFieldTypeData.ItemTypeId = itemTypeData.Id; itemFieldTypeData.FieldId = fieldData.FieldId; itemFieldTypeData.IsSelected = allItemTypeFields.Where(itf => itf.ItemTypeId == itemTypeData.Id && itf.FieldId == fieldData.FieldId).FirstOrDefault() != null; dataRows[i][itemTypeData.Name] = itemFieldTypeData; } ItemTypeTable.Rows.Add(dataRows[i]); } return(ItemTypeTable); }