protected void RadGrid1_ItemDataBound(object sender, GridItemEventArgs e) { if (e.Item is GridEditableItem && e.Item.IsInEditMode) { GridEditableItem editedItem = e.Item as GridEditableItem; GridEditManager editMan = editedItem.EditManager; foreach (GridViewColumn column in Columns) { if (column is GridViewDropDownListColumn) { // Binding DDL type fields GridViewDropDownListColumn ddlColumn = column as GridViewDropDownListColumn; if (!ddlColumn.IsReadOnly) { GridTemplateColumnEditor templateEditor = (GridTemplateColumnEditor)editMan.GetColumnEditor(ddlColumn.DataFieldKey); RadComboBox ddl = templateEditor.ContainerControl.FindControl(ddlColumn.DataFieldKey) as RadComboBox; if (ddlColumn.enableEmptyItem) { ddl.Items.Add(new RadComboBoxItem(BindingListItem.EmptyText, BindingListItem.EmptyValue)); ddl.AppendDataBoundItems = true; } ddl.DataSource = ddlColumn.ListDataSource; ddl.DataValueField = BindingListItem.ValueProperty; ddl.DataTextField = BindingListItem.TextProperty; ddl.DataBind(); // Set current value //if (e.Item is GridDataInsertItem || e.Item is GridEditFormInsertItem) if (e.Item is IGridInsertItem) { ddl.SelectedValue = null; } else { object currentValue = DataBinder.Eval(e.Item.DataItem, ddlColumn.DataFieldKey); if (currentValue != null) { ddl.SelectedValue = currentValue.ToString(); } } } } else if (column is GridViewLinkButtonColumn) { // Binding Link button type fields GridViewLinkButtonColumn linkColumn = column as GridViewLinkButtonColumn; if (!linkColumn.IsReadOnly) { GridTemplateColumnEditor templateEditor = (GridTemplateColumnEditor)editMan.GetColumnEditor(linkColumn.DataTextField); RadTextBox textBox = templateEditor.ContainerControl.FindControl(linkColumn.DataTextField) as RadTextBox; // Set current value if (e.Item is IGridInsertItem) { textBox.Text = null; } else { object currentValue = DataBinder.Eval(e.Item.DataItem, linkColumn.DataTextField); if (currentValue != null) { textBox.Text = currentValue.ToString(); } } } } else if (column is GridViewDataDateColumn) { } } } }
private void DefineColumns() { foreach (SubjectFieldDto field in CurrentSubject.SubjectFields) { if (field.IsShowInGrid) { if (field.FieldKey.Equals(ControlledFieldName, StringComparison.OrdinalIgnoreCase)) { continue; } // Todo: implement multi-language string headerText = field.GetFieldLabelByLanguage(CurrentUserContext.CurrentLanguage.Id); if (field.IsLinkInGrid && field.DucType != DucTypes.Lookup && field.DucType != DucTypes.Pickup) { GridViewLinkButtonColumn hc = new GridViewLinkButtonColumn(headerText, field.FieldKey); ucListManager.Columns.Add(hc); hc.EditColumnIndex = field.ColIndex; hc.DataNavigateUrlFormatString = ServerPath + field.LookupSubjectManageUrlFormatString; if (field.DucType == DucTypes.Lookup && field.LookupSubjectId != null) { // Link to another subject by LookupSubjectId hc.DataNavigateUrlField = field.FieldKey; } else { // Link to current subject if (MasterInstance != null) { // Add MasterInstance hc.DataNavigateUrlFormatString += string.Format("&{0}={1}", QryMasterInstanceId, MasterInstance.Id); } hc.DataNavigateUrlField = BaseDto.FLD_StringId; } } else { switch (field.DucType) { case DucTypes.Lookup: case DucTypes.Pickup: GridViewDropDownListColumn ddlCol = new GridViewDropDownListColumn(headerText, field.FieldKey, field.ListDataSource); ucListManager.Columns.Add(ddlCol); ddlCol.IsReadOnly = field.IsReadonly; ddlCol.enableEmptyItem = !field.IsRequired; ddlCol.EditColumnIndex = field.ColIndex; ddlCol.DropDownHeight = WebContext.Current.ApplicationOption.DropDownHeight; break; case DucTypes.Text: case DucTypes.TextArea: case DucTypes.Currency: case DucTypes.Email: case DucTypes.Formula: case DucTypes.Integer: case DucTypes.Number: case DucTypes.Percentage: GridViewDataTextColumn textCol = new GridViewDataTextColumn(headerText, field.FieldKey); ucListManager.Columns.Add(textCol); textCol.IsReadOnly = field.IsReadonly; textCol.EditColumnIndex = field.ColIndex; if (field.MaxLength.HasValue) { textCol.MaxLength = field.MaxLength.Value; } break; case DucTypes.Date: GridViewDataDateColumn dateCol = new GridViewDataDateColumn(headerText, field.FieldKey); ucListManager.Columns.Add(dateCol); dateCol.IsReadOnly = field.IsReadonly; dateCol.EditColumnIndex = field.ColIndex; break; case DucTypes.Datetime: GridViewDataDateTimeColumn dateTimeCol = new GridViewDataDateTimeColumn(headerText, field.FieldKey); ucListManager.Columns.Add(dateTimeCol); dateTimeCol.IsReadOnly = field.IsReadonly; dateTimeCol.EditColumnIndex = field.ColIndex; break; case DucTypes.Time: GridViewDataTimeColumn timeCol = new GridViewDataTimeColumn(headerText, field.FieldKey); ucListManager.Columns.Add(timeCol); timeCol.IsReadOnly = field.IsReadonly; timeCol.EditColumnIndex = field.ColIndex; break; case DucTypes.Image: GridViewBinaryImageColumn ic = new GridViewBinaryImageColumn(headerText, field.FieldKey); ucListManager.Columns.Add(ic); ic.IsReadOnly = field.IsReadonly; ic.EditColumnIndex = field.ColIndex; ic.ImageWidth = 60; ic.ImageHeight = 80; break; case DucTypes.Attachment: GridViewAttachmentColumn ac = new GridViewAttachmentColumn(headerText, field.FieldKey); ucListManager.Columns.Add(ac); ac.IsReadOnly = field.IsReadonly; ac.EditColumnIndex = field.ColIndex; ac.NavigateUrlFormatString = ServerPath + field.NavigateUrlFormatString; ac.NavigateUrlField = BaseDto.FLD_StringId; ac.LinkTextField = BA.Core.UIConst.FLD_LinkText; break; default: GridViewDataColumn c = new GridViewDataColumn(headerText, field.FieldKey); ucListManager.Columns.Add(c); c.IsReadOnly = field.IsReadonly; c.EditColumnIndex = field.ColIndex; if (field.MaxLength.HasValue) { c.MaxLength = field.MaxLength.Value; } break; } } } } if (AllowEdit) { GridViewEditCommandColumn editColumn = new GridViewEditCommandColumn(); ucListManager.Columns.Add(editColumn); editColumn.UniqueName = "edt0001"; editColumn.NonExportable = true; } if (AllowDelete) { GridViewDeleteButtonColumn deleteColumn = new GridViewDeleteButtonColumn(); ucListManager.Columns.Add(deleteColumn); deleteColumn.UniqueName = "del0001"; deleteColumn.NonExportable = true; deleteColumn.ConfirmTextFormatString = "Are you sure to delete {0}"; deleteColumn.ConfirmTextFields = new string[] { BaseDto.FLD_Display }; } }