I have a set of columns which are not editable in 'Edit Mode'. But when on 'Insert Mode' I want the same columns to have dropdowns and I should be able to select values. In EditMode to disable these columns this is what I have done:
protected void RadGrid1_ItemCreated(object sender, Telerik.Web.UI.GridItemEventArgs e)
{
if (e.Item is GridEditableItem && e.Item.IsInEditMode && !(e.Item is GridEditFormInsertItem))
{
GridEditableItem item = e.Item as GridEditableItem;
GridEditManager manager = item.EditManager;
//Adding columns that are not editable
GridTextBoxColumnEditor editor = manager.GetColumnEditor("Description") as GridTextBoxColumnEditor;
editor.TextBoxControl.Enabled = false;
editor.TextBoxControl.BackColor = System.Drawing.Color.Gray;
editor.TextBoxControl.ForeColor = System.Drawing.Color.Black;
editor = manager.GetColumnEditor("SameRegion") as GridTextBoxColumnEditor;
editor.TextBoxControl.Enabled = false;
editor.TextBoxControl.BackColor = System.Drawing.Color.Gray;
editor.TextBoxControl.ForeColor = System.Drawing.Color.Black;
editor = manager.GetColumnEditor("AVRMName") as GridTextBoxColumnEditor;
editor.TextBoxControl.Enabled = false;
editor.TextBoxControl.BackColor = System.Drawing.Color.Gray;
editor.TextBoxControl.ForeColor = System.Drawing.Color.Black;
editor = manager.GetColumnEditor("AVRMZName") as GridTextBoxColumnEditor;
editor.TextBoxControl.Enabled = false;
editor.TextBoxControl.BackColor = System.Drawing.Color.Gray;
editor.TextBoxControl.ForeColor = System.Drawing.Color.Black;
}
}
The description and SameRegion columns should have a dropdown in 'InsertMode' so that I can pass the selected values. How can I achieve this?
9 Answers, 1 is accepted
0

Shinu
Top achievements
Rank 2
answered on 26 Mar 2014, 09:25 AM
Hi,
Please try the following code snippet to have a DropDownList for a column in insert mode and hide it during edit.
C#:
Thanks,
Shinu
Please try the following code snippet to have a DropDownList for a column in insert mode and hide it during edit.
C#:
protected
void
RadGrid1_ItemDataBound(
object
sender, GridItemEventArgs e)
{
// Create DropDownList in insert mode
if
(e.Item
is
GridEditableItem && e.Item.OwnerTableView.IsItemInserted && e.Item.IsInEditMode)
{
GridEditableItem edit = (GridEditableItem)e.Item;
TextBox txt = (TextBox)edit[
"SameRegion"
].Controls[0];
txt.Visible =
false
;
DropDownList drop =
new
DropDownList();
drop.ID =
"DropDownList1"
;
drop.DataSourceID =
"SqlDataSource2"
;
drop.DataTextField =
"SameRegion"
;
drop.DataValueField =
"SameRegion"
;
edit[
"SameRegion"
].Controls.Add(drop);
}
// Hide column in edit mode
if
(e.Item
is
GridEditableItem && !e.Item.OwnerTableView.IsItemInserted && e.Item.IsInEditMode)
{
GridEditableItem edit = (GridEditableItem)e.Item;
edit[
"SameRegion"
].Parent.Visible =
false
;
}
}
Thanks,
Shinu
0

RB
Top achievements
Rank 1
answered on 26 Mar 2014, 10:13 PM
Thanks for the reply. No matter what, on Update I get old grid Values and not the newValues.It was working fine till I guess I messed some part!
Instead of getting new values selected from the dropdownlist, i get the previous ones on Update!
Instead of getting new values selected from the dropdownlist, i get the previous ones on Update!
public class OrderRequestOrderEntrySystemListCtrl : WebControl, INamingContainer
{
#region Fields
private L3RadGridTitleBar _L3RadGridTitleBar;
private Telerik.Web.UI.RadGrid _RadGrid1 = new Telerik.Web.UI.RadGrid();
private RadAjaxLoadingPanel _RadLoadingPanel = new RadAjaxLoadingPanel();
private UpdatePanel _UpdatePanel = new UpdatePanel();
private CatalogProductRegionOrderEntryItemTable _CatalogProductRegionOrderEntryItemTable = new CatalogProductRegionOrderEntryItemTable();
private AvrmQueueTypeTable _AvrmQueueTypeTable = new AvrmQueueTypeTable();
private CatalogProductTable _CatalogProductTable = new CatalogProductTable();
#endregion
#region Constructors
public OrderRequestOrderEntrySystemListCtrl() { }
#endregion
#region Overrides
protected override void OnInit(EventArgs e)
{
this._RadLoadingPanel.ID = "_RadLoadingPanel";
this._RadLoadingPanel.Transparency = 30;
this._RadLoadingPanel.Skin = "WebBlue";
this._RadLoadingPanel.BackgroundPosition = AjaxLoadingPanelBackgroundPosition.TopRight;
this.Controls.Add(this._RadLoadingPanel);
this._L3RadGridTitleBar = new L3RadGridTitleBar(_RadGrid1);
this._L3RadGridTitleBar.ID = "_L3RadGridTitleBar";
this._L3RadGridTitleBar.PageOrientation = Orientation.Vertical;
this._L3RadGridTitleBar.CellAlignment = System.Drawing.ContentAlignment.MiddleLeft;
this._L3RadGridTitleBar.ShowExportXls = true;
this.Controls.Add(this._L3RadGridTitleBar);
this._RadGrid1.Skin = "WebBlue";
this._RadGrid1.Width = Unit.Percentage(98);
this._RadGrid1.GridLines = GridLines.None;
this._RadGrid1.PageSize = 100;
this._RadGrid1.PagerStyle.Mode = GridPagerMode.NextPrevAndNumeric;
this._RadGrid1.AllowPaging = true;
this._RadGrid1.AllowSorting = true;
this._RadGrid1.AllowFilteringByColumn = true;
this._RadGrid1.AllowAutomaticDeletes = true;
this._RadGrid1.AllowAutomaticInserts = true;
this._RadGrid1.AllowAutomaticUpdates = true;
this._RadGrid1.AutoGenerateColumns = false;
this._RadGrid1.AutoGenerateEditColumn = true;
this._RadGrid1.AutoGenerateDeleteColumn = true;
this._RadGrid1.ClientSettings.DataBinding.EnableCaching = true;
this._RadGrid1.ClientSettings.AllowGroupExpandCollapse = true;
this._RadGrid1.ClientSettings.AllowKeyboardNavigation = true;
this._RadGrid1.EnableGroupsExpandAll = true;
this._RadGrid1.EnableLinqExpressions = false;
this._RadGrid1.EnableHeaderContextFilterMenu = true;
this._RadGrid1.GroupingEnabled = true;
this._RadGrid1.ShowGroupPanel = true;
this._RadGrid1.MasterTableView.GroupLoadMode = GridGroupLoadMode.Client;
this._RadGrid1.MasterTableView.Width = Unit.Percentage(100);
this._RadGrid1.MasterTableView.EnableHeaderContextMenu = true;
this._RadGrid1.MasterTableView.EnableHeaderContextFilterMenu = true;
this._RadGrid1.MasterTableView.NoMasterRecordsText = "There are no Order Entry System Settings";
this._RadGrid1.MasterTableView.HierarchyDefaultExpanded = true;
this._RadGrid1.MasterTableView.DataKeyNames = new string[] {this._CatalogProductRegionOrderEntryItemTable.CatalogProductRegionOrderEntryIdColumn.ColumnName};
this._RadGrid1.MasterTableView.CommandItemDisplay = GridCommandItemDisplay.TopAndBottom;
this._RadGrid1.MasterTableView.CommandItemSettings.AddNewRecordText = "Add Order Entry Setting";
this._RadGrid1.MasterTableView.InsertItemPageIndexAction = GridInsertItemPageIndexAction.ShowItemOnCurrentPage;
//this._RadGrid1.MasterTableView.DetailItemTemplate = new OrderRequestOESTemplate();
this._RadGrid1.ItemCreated += RadGrid1_ItemCreated;
this._RadGrid1.ItemDataBound += RadGrid1_ItemDataBound;
this._RadGrid1.MasterTableView.EditMode = GridEditMode.InPlace;
//this._RadGrid1.ItemInserted += RadGrid1_ItemInserted;
this._RadGrid1.ItemCommand += _RadGrid1_ItemCommand;
// this._RadGrid1.EditCommand += _RadGrid1_EditCommand;
this._RadGrid1.DeleteCommand += _RadGrid1_DeleteCommand;
this._RadGrid1.UpdateCommand += RadGrid1_UpdateCommand;
this._RadGrid1.InsertCommand += _RadGrid1_InsertCommand;
this._RadGrid1.NeedDataSource += RadGrid1_NeedDataSource;
LoadList();
#region Columns
String columnName;
columnName = this._CatalogProductRegionOrderEntryItemTable.DescriptionColumn.ColumnName;
GridBoundColumn boundColumn = new GridBoundColumn();
this._RadGrid1.MasterTableView.Columns.Add(boundColumn);
boundColumn.FilterTemplate = new DropdownTemplate(columnName, _RadGrid1, this._CatalogProductTable.SelectDistinct(columnName));
boundColumn.DataField = columnName;
boundColumn.HeaderText = "Product";
boundColumn.UniqueName = this._CatalogProductRegionOrderEntryItemTable.DescriptionColumn.ColumnName;
boundColumn.Groupable = true;
//boundColumn = new GridBoundColumn();
//this._RadGrid1.MasterTableView.Columns.Add(boundColumn);
//boundColumn.DataField = this._CatalogProductRegionOrderEntryItemTable.ProductCodeColumn.ColumnName;
//boundColumn.HeaderText = "Product Code";
//boundColumn.UniqueName = this._CatalogProductRegionOrderEntryItemTable.ProductCodeColumn.ColumnName;
//boundColumn.Groupable = true;
//boundColumn.AllowFiltering = true;
columnName = this._CatalogProductRegionOrderEntryItemTable.SourceSystemTypeColumn.ColumnName;
boundColumn = new GridBoundColumn();
boundColumn.FilterTemplate = new DropdownTemplate(columnName, _RadGrid1, this._CatalogProductRegionOrderEntryItemTable.SelectDistinct(columnName));
this._RadGrid1.MasterTableView.Columns.Add(boundColumn);
boundColumn.DataField = columnName;
boundColumn.AllowFiltering = true;
boundColumn.Groupable = true;
boundColumn.AutoPostBackOnFilter = true;
boundColumn.HeaderText = "Order Entry System";
boundColumn.UniqueName = columnName;
boundColumn.AllowSorting = true;
boundColumn = new GridBoundColumn();
this._RadGrid1.MasterTableView.Columns.Add(boundColumn);
boundColumn.DataField = this._CatalogProductRegionOrderEntryItemTable.IsALLRegionsTheSameColumn.ColumnName;
boundColumn.HeaderText = "Same Region";
boundColumn.AllowSorting = true;
boundColumn.Groupable = true;
boundColumn.UniqueName = "SameRegion";
columnName = this._CatalogProductRegionOrderEntryItemTable.AVRMQueueColumn.ColumnName; ;
boundColumn = new GridBoundColumn();
this._RadGrid1.MasterTableView.Columns.Add(boundColumn);
boundColumn.FilterTemplate = new DropdownTemplate(columnName, this._RadGrid1, this._AvrmQueueTypeTable);
boundColumn.DataField = columnName;
boundColumn.HeaderText = "AVRM";
boundColumn.AllowFiltering = true;
boundColumn.Groupable = true;
boundColumn.UniqueName = "AVRM";
columnName = this._CatalogProductRegionOrderEntryItemTable.AvrmDisplayColumn.ColumnName;
boundColumn = new GridBoundColumn();
this._RadGrid1.MasterTableView.Columns.Add(boundColumn);
boundColumn.DataField = columnName;
boundColumn.HeaderText = "AVRM Name";
boundColumn.AllowFiltering = false;
boundColumn.UniqueName = "AVRMName";
columnName = this._CatalogProductRegionOrderEntryItemTable.AVRMQueueZColumn.ColumnName;
boundColumn = new GridBoundColumn();
this._RadGrid1.MasterTableView.Columns.Add(boundColumn);
boundColumn.FilterTemplate = new DropdownTemplate(columnName, this._RadGrid1, this._CatalogProductRegionOrderEntryItemTable.SelectDistinct(columnName));
boundColumn.DataField = columnName;
boundColumn.HeaderText = "AVRM Z";
boundColumn.AllowFiltering = true;
boundColumn.Groupable = true;
boundColumn.UniqueName = "AVRMZ";
columnName = this._CatalogProductRegionOrderEntryItemTable.AvrmDisplayZColumn.ColumnName;
boundColumn = new GridBoundColumn();
this._RadGrid1.MasterTableView.Columns.Add(boundColumn);
boundColumn.DataField = columnName;
boundColumn.HeaderText = "AVRM Z Name";
boundColumn.AllowFiltering = false;
boundColumn.UniqueName = "AVRMZName";
#endregion
this._UpdatePanel.ID = "ajaxPanel";
this._UpdatePanel.UpdateMode = UpdatePanelUpdateMode.Conditional;
this._UpdatePanel.ContentTemplateContainer.Controls.Add(this._RadGrid1);
this.Controls.Add(this._UpdatePanel);
base.OnInit(e);
}
protected void Page_Load(object sender, System.EventArgs e)
{
if (!Page.IsPostBack)
{
this._RadGrid1.EditIndexes.Add(0);
}
}
protected void RadGrid1_ItemCreated(object sender, Telerik.Web.UI.GridItemEventArgs e)
{
if (e.Item is GridEditableItem && e.Item.IsInEditMode)
{
if (!(e.Item is GridEditFormInsertItem))
{
GridEditableItem item = e.Item as GridEditableItem;
GridEditManager manager = item.EditManager;
//Adding columns that are not editable
GridTextBoxColumnEditor editor = manager.GetColumnEditor("Description") as GridTextBoxColumnEditor;
editor.TextBoxControl.Enabled = false;
editor.TextBoxControl.BackColor = System.Drawing.Color.Gray;
editor.TextBoxControl.ForeColor = System.Drawing.Color.Black;
editor = manager.GetColumnEditor("SameRegion") as GridTextBoxColumnEditor;
editor.TextBoxControl.Enabled = false;
editor.TextBoxControl.BackColor = System.Drawing.Color.Gray;
editor.TextBoxControl.ForeColor = System.Drawing.Color.Black;
editor = manager.GetColumnEditor("AVRMName") as GridTextBoxColumnEditor;
editor.TextBoxControl.Enabled = false;
editor.TextBoxControl.BackColor = System.Drawing.Color.Gray;
editor.TextBoxControl.ForeColor = System.Drawing.Color.Black;
editor = manager.GetColumnEditor("AVRMZName") as GridTextBoxColumnEditor;
editor.TextBoxControl.Enabled = false;
editor.TextBoxControl.BackColor = System.Drawing.Color.Gray;
editor.TextBoxControl.ForeColor = System.Drawing.Color.Black;
}
//else if(e.Item.ItemIndex<0)
//{
// GridEditableItem item = e.Item as GridEditableItem;
// GridEditManager manager = item.EditManager;
// GridTextBoxColumnEditor editor = manager.GetColumnEditor("AVRMName") as GridTextBoxColumnEditor;
// editor.TextBoxControl.Enabled = false;
// editor.TextBoxControl.BackColor = System.Drawing.Color.Gray;
// editor.TextBoxControl.ForeColor = System.Drawing.Color.Black;
// editor = manager.GetColumnEditor("AVRMZName") as GridTextBoxColumnEditor;
// editor.TextBoxControl.Enabled = false;
// editor.TextBoxControl.BackColor = System.Drawing.Color.Gray;
// editor.TextBoxControl.ForeColor = System.Drawing.Color.Black;
//}
}
}
protected void RadGrid1_ItemDataBound(object sender, Telerik.Web.UI.GridItemEventArgs e)
{
String SourceSystemDescription = "", AVRMQ = "", AVRMZ = "";
string[] UniqueName = new string[3] { "SourceSystemType", "AVRM", "AVRMZ" };
string[] DBColName = new string[3] {"SourceSystemType", "AVRMQueue", "AVRMQueueZ"};
if (e.Item is GridEditableItem && e.Item.IsInEditMode && !(e.Item is GridEditFormInsertItem) && !(e.Item.ItemIndex<0))
{
GridEditableItem editedItem = e.Item as GridEditableItem;
int CatalogProductRegionOEID = Convert.ToInt32(editedItem.OwnerTableView.DataKeyValues[e.Item.ItemIndex]["CatalogProductRegionOrderEntryId"]);
DataRow[] changedRows = _CatalogProductRegionOrderEntryItemTable.Select("CatalogProductRegionOrderEntryId = " + CatalogProductRegionOEID);
Hashtable oldValues = new Hashtable();
e.Item.OwnerTableView.ExtractValuesFromItem(oldValues, editedItem);
DataRow changedRow = changedRows[0];
foreach (DictionaryEntry entry in oldValues)
{
changedRow[(string)entry.Key] = entry.Value;
if (entry.Key.Equals("SourceSystemType"))
SourceSystemDescription = entry.Value.ToString();
if (entry.Key.Equals("AVRMQueue"))
AVRMQ = string.Format("{0}", entry.Value);
if (entry.Key.Equals("AVRMQueueZ") && (entry.Value != null))
AVRMZ = string.Format("{0}", entry.Value);
}
for (int count = 0; count < UniqueName.Length; count++)
{
TextBox txt = (TextBox)editedItem[UniqueName[count]].Controls[0];
txt.Visible = false;
DropDownList droplist = new DropDownList();
droplist.DataSource = this._CatalogProductRegionOrderEntryItemTable.SelectDistinct(DBColName[count]);
if (UniqueName[count].Equals("AVRM"))
{
droplist.DataSource = this._AvrmQueueTypeTable;
droplist.Text = AVRMQ;
}
else if(UniqueName[count].Equals("AVRMZ"))
droplist.Text = AVRMZ;
else if (UniqueName[count].Equals("SourceSystemType"))
droplist.Text = SourceSystemDescription;
droplist.DataTextField = DBColName[count];
droplist.DataValueField = DBColName[count];
// droplist.DataBind();
editedItem[UniqueName[count]].Controls.Add(droplist);
}
}
}
void _RadGrid1_ItemCommand(object sender, GridCommandEventArgs e)
{
GridEditableItem editedItem = e.Item as GridEditableItem;
DataTable ordersTable = this._CatalogProductRegionOrderEntryItemTable;
DataRow newRow = ordersTable.NewRow();
}
void _RadGrid1_InsertCommand(object sender, GridCommandEventArgs e)
{
String SourceSystemDescription = "", AVRMQ = "", AVRMZ = "", Product = "";
bool IsAllRegionsTheSame = false;
GridEditableItem editedItem = e.Item as GridEditableItem;
//DataTable CPROETable = this._CatalogProductRegionOrderEntryItemTable;
//Create new row in the DataSource
DataRow newRow = this._CatalogProductRegionOrderEntryItemTable.NewRow();
//Insert new values
Hashtable newValues = new Hashtable();
e.Item.OwnerTableView.ExtractValuesFromItem(newValues, editedItem);
try
{
foreach (DictionaryEntry entry in newValues)
{
newRow[(string)entry.Key] = entry.Value;
if (entry.Key.Equals("SourceSystemType"))
SourceSystemDescription = entry.Value.ToString();
if (entry.Key.Equals("AVRMQueue"))
AVRMQ = string.Format("{0}", entry.Value);
if (entry.Key.Equals("AVRMQueueZ"))
AVRMZ = string.Format("{0}", entry.Value);
if (entry.Key.Equals("Description"))
Product = string.Format("{0}", entry.Value);
if (entry.Key.Equals("IsAllRegionsTheSame"))
IsAllRegionsTheSame = Convert.ToBoolean(entry.Value);
}
CatalogProductRegionOrderEntry_Add _CatalogProductRegionOrderEntry_Add = new CatalogProductRegionOrderEntry_Add();
_CatalogProductRegionOrderEntry_Add.ExecuteNonQuery(Product, SourceSystemDescription,IsAllRegionsTheSame, AVRMQ, AVRMZ);
}
catch (Exception ex)
{
this._RadGrid1.Controls.Add(new LiteralControl("Unable to update the data. Reason: " + ex.Message));
e.Canceled = true;
}
}
void _RadGrid1_DeleteCommand(object sender, GridCommandEventArgs e)
{
CatalogProductRegionOrderEntry_DeleteById _CatalogProductRegionOrderEntry_DeleteById = new CatalogProductRegionOrderEntry_DeleteById();
GridEditableItem editedItem = e.Item as GridEditableItem;
int Id = 0;
// determine the ID
Id = Convert.ToInt32(editedItem.OwnerTableView.DataKeyValues[e.Item.ItemIndex]["CatalogProductRegionOrderEntryId"]);
_CatalogProductRegionOrderEntry_DeleteById.ExecuteNonQuery(Id);
Page.RegisterRequiresPostBack(this._RadGrid1);
}
protected void RadGrid1_UpdateCommand(object source, GridCommandEventArgs e)
{
String SourceSystemDescription = "", AVRMQ = "", AVRMZ = "";
int CatalogProductRegionOEID;
GridEditableItem editedItem = e.Item as GridEditableItem;
// determine the ID
CatalogProductRegionOEID = Convert.ToInt32(editedItem.OwnerTableView.DataKeyValues[e.Item.ItemIndex]["CatalogProductRegionOrderEntryId"]);
DataRow[] changedRows = _CatalogProductRegionOrderEntryItemTable.Select("CatalogProductRegionOrderEntryId = " + CatalogProductRegionOEID);
Hashtable newValues = new Hashtable();
//The GridTableView will fill the values from all editable columns in the hash
e.Item.OwnerTableView.ExtractValuesFromItem(newValues, editedItem);
DataRow changedRow = changedRows[0];
changedRow.BeginEdit();
try
{
foreach (DictionaryEntry entry in newValues)
{
changedRow[(string)entry.Key] = entry.Value;
if (entry.Key.Equals("SourceSystemType"))
SourceSystemDescription = entry.Value.ToString();
if (entry.Key.Equals("AVRMQueue"))
AVRMQ = string.Format("{0}",entry.Value);
if (entry.Key.Equals("AVRMQueueZ") && (entry.Value != null))
AVRMZ = string.Format("{0}", entry.Value);
}
changedRow.EndEdit();
CatalogProductRegionOrderEntry_Update _CatalogProductRegionOrderEntryUpdate = new CatalogProductRegionOrderEntry_Update();
_CatalogProductRegionOrderEntryUpdate.ExecuteNonQuery(SourceSystemDescription, AVRMQ, AVRMZ, CatalogProductRegionOEID);
}
catch (Exception ex)
{
changedRow.CancelEdit();
this._RadGrid1.Controls.Add(new LiteralControl("Unable to update the data. Reason: " + ex.Message));
e.Canceled = true;
}
this.Page.RegisterRequiresPostBack(this._RadGrid1);
this._RadGrid1.MasterTableView.Rebind();
}
protected override void OnPreRender(EventArgs e)
{
base.OnPreRender(e);
RadAjaxManager ajaxManager = RadAjaxManager.GetCurrent(Page);
ajaxManager.AjaxSettings.AddAjaxSetting(this._UpdatePanel, this._RadGrid1, this._RadLoadingPanel);
}
#endregion Overrides
#region Utility Methods
void RadGrid1_NeedDataSource(object sender, GridNeedDataSourceEventArgs e)
{
LoadList();
this._RadGrid1.DataSource = this._CatalogProductRegionOrderEntryItemTable;
}
private void LoadList()
{
if (this._CatalogProductRegionOrderEntryItemTable.Count < 1)
this._CatalogProductRegionOrderEntryItemTable = new CatalogProductRegionOrderEntry_List().ExecuteTypedDataTable();
_AvrmQueueTypeTable = new AvrmQueue_List().ExecuteTypedDataTable();
_CatalogProductTable = new CatalogProduct_List().ExecuteTypedDataTable();
}
#endregion Utility Methods
}
0

RB
Top achievements
Rank 1
answered on 26 Mar 2014, 11:22 PM
I checked that the problem is arising because in the ItemDataBound I am creating dropdown list. When I remove this part it works fine. I want a dropdown on click of edit for these columns.
0
Accepted

Shinu
Top achievements
Rank 2
answered on 27 Mar 2014, 04:32 AM
Hi,
I guess you want to have a dropdown in edit mode and access it values on Update. Please try the following code snippet.
C#:
Thanks,
Shinu
I guess you want to have a dropdown in edit mode and access it values on Update. Please try the following code snippet.
C#:
protected
void
RadGrid1_ItemDataBound(
object
sender, GridItemEventArgs e)
{
if
(e.Item
is
GridEditableItem && !e.Item.OwnerTableView.IsItemInserted && e.Item.IsInEditMode)
{
GridEditableItem edit = (GridEditableItem)e.Item;
DropDownList drop = (DropDownList)edit.FindControl(
"DropDownList1"
);
drop.DataSourceID =
"SqlDataSource1"
;
drop.DataTextField =
"SameRegion"
;
drop.DataValueField =
"SameRegion"
;
}
}
protected
void
RadGrid1_ItemCreated(
object
sender, GridItemEventArgs e)
{
if
(e.Item
is
GridEditableItem && !e.Item.OwnerTableView.IsItemInserted && e.Item.IsInEditMode)
{
GridEditableItem edit = (GridEditableItem)e.Item;
TextBox txt = (TextBox)edit[
"SameRegion"
].Controls[0];
txt.Visible =
false
;
DropDownList drop =
new
DropDownList();
drop.ID =
"DropDownList1"
;
drop.DataSourceID =
"SqlDataSource1"
;
drop.DataTextField =
"SameRegion"
;
drop.DataValueField =
"SameRegion"
;
edit[
"SameRegion"
].Controls.Add(drop);
}
}
protected
void
RadGrid1_UpdateCommand(
object
sender, GridCommandEventArgs e)
{
GridEditableItem editedItem = (GridEditableItem)e.Item;
DropDownList drop = (DropDownList)editedItem.FindControl(
"DropDownList1"
);
string
value = drop.SelectedValue;
}
Thanks,
Shinu
0

RB
Top achievements
Rank 1
answered on 31 Mar 2014, 10:11 PM
Thanks Shinu. It worked. But when I try to find the dropdownlist in _RadGrid1_EditCommand, it is unable ti find it. On click of Edit, I want the existing value to be the selected value in each dropdown.
On UpdateComand it is able to find the control but not on edit. Can you please tell me why this happens?
private void _RadGrid1_EditCommand(object sender, GridCommandEventArgs e)
{
GridEditableItem editedItem = e.Item as GridEditableItem;
DropDownList drop = new DropDownList();
drop = (DropDownList)editedItem.FindControl("DropDownList") ;
}
On UpdateComand it is able to find the control but not on edit. Can you please tell me why this happens?
0

Shinu
Top achievements
Rank 2
answered on 01 Apr 2014, 04:32 AM
Hi,
If you want to set the selected value, you have to use the ItemDataBound event.
C#:
Thanks,
Shinu
If you want to set the selected value, you have to use the ItemDataBound event.
C#:
protected
void
RadGrid1_ItemDataBound(
object
sender, GridItemEventArgs e)
{
if
(e.Item
is
GridEditableItem && !e.Item.OwnerTableView.IsItemInserted && e.Item.IsInEditMode)
{
GridEditableItem edit = (GridEditableItem)e.Item;
DropDownList drop = (DropDownList)edit.FindControl(
"DropDownList1"
);
drop.DataSourceID =
"SqlDataSource1"
;
drop.DataTextField =
"SameRegion"
;
drop.DataValueField =
"SameRegion"
;
//Set the selected value in edit
drop.SelectedValue = DataBinder.Eval(edit.DataItem,
"SameRegion"
).ToString();
}
}
Thanks,
Shinu
0

RB
Top achievements
Rank 1
answered on 01 Apr 2014, 11:04 PM
Thanks for the reply. If "SameRegion" allows null, I want the dropdown to diaplay a blank field also.
It didnt work.
Also droplist.Items.Insert(0, new ListItem{ Text = "", Value = "" }); did not work!
The user should be able to select a blank entry from the dropdown since it allows null values.
droplist.DataSource = this._AvrmQueueTypeTable;
droplist.DataTextField = DBColName[1];
droplist.DataValueField = DBColName[1];
droplist.DataBind();
droplist.Items.Insert(0, new ListItem(String.Empty, String.Empty));
It didnt work.
Also droplist.Items.Insert(0, new ListItem{ Text = "", Value = "" }); did not work!
The user should be able to select a blank entry from the dropdown since it allows null values.
0
Accepted

Shinu
Top achievements
Rank 2
answered on 02 Apr 2014, 04:20 AM
Hi,
Please add the following code snippet in the ItemCreated event of the RadGrid.
C#:
Thanks,
Shinu
Please add the following code snippet in the ItemCreated event of the RadGrid.
C#:
protected
void
RadGrid1_ItemCreated(
object
sender, GridItemEventArgs e)
{
if
(e.Item
is
GridEditableItem && !e.Item.OwnerTableView.IsItemInserted && e.Item.IsInEditMode)
{
GridEditableItem edit = (GridEditableItem)e.Item;
//Your code to add dropdown
drop.AppendDataBoundItems =
true
;
drop.Items.Insert(0,
new
ListItem(String.Empty, String.Empty));
edit[
"SameRegion"
].Controls.Add(drop);
}
}
Thanks,
Shinu
0

RB
Top achievements
Rank 1
answered on 02 Apr 2014, 04:09 PM
Thanks. I was missing drop.AppendDataBoundItems = true !!