Hi,
I am trying to change the width of a GridDropDownColumn in a detail table during editmode so the items do not wrap to more than one line just something simple like 500px. Nothing seems to work. I have tried accessing the control in itemdatabound event but cannot seem to get this working for detail tables, even though I have it working fine when there are no details tables.
Any help much appreciated.
Thanks,
Paul
I am trying to change the width of a GridDropDownColumn in a detail table during editmode so the items do not wrap to more than one line just something simple like 500px. Nothing seems to work. I have tried accessing the control in itemdatabound event but cannot seem to get this working for detail tables, even though I have it working fine when there are no details tables.
Any help much appreciated.
Thanks,
Paul
4 Answers, 1 is accepted
0
Princy
Top achievements
Rank 2
answered on 22 Jul 2010, 06:37 AM
Hellp Paul,
In ItemDataBound check for the name of DetailTable to access the control in DropDownColumn of that table.
ASPX:
C#:
Hope this helps,
Princy.
In ItemDataBound check for the name of DetailTable to access the control in DropDownColumn of that table.
ASPX:
<telerik:RadGrid ID="RadGrid2" DataSourceID="SqlDataSource1" runat="server" OnItemDataBound="RadGrid1_ItemDataBound"> <MasterTableView Name="Master" runat="server" EditMode="InPlace"> <DetailTables> <telerik:GridTableView Name="GridTableView1" runat="server" DataSourceID="SqlDataSource2" EditMode="InPlace"> <Columns> <telerik:GridDropDownColumn UniqueName="GridDropDownColumn" DropDownControlType="DropDownList"> </telerik:GridDropDownColumn> <telerik:GridEditCommandColumn> </telerik:GridEditCommandColumn> </Columns> </telerik:GridTableView> </DetailTables> </MasterTableView></telerik:RadGrid>C#:
protected void RadGrid1_ItemDataBound(object sender, GridItemEventArgs e) { if (e.Item is GridEditableItem && e.Item.IsInEditMode && e.Item.OwnerTableView.Name == "GridTableView1")//check with the name of DetailTable { GridEditableItem editItem = (GridEditableItem)e.Item; DropDownList drList = (DropDownList)editItem["GridDropDownColumn"].Controls[0]; drList.Width = Unit.Pixel(500); } }Hope this helps,
Princy.
0
Paul
Top achievements
Rank 1
answered on 22 Jul 2010, 04:26 PM
Hi Princy
I am using form edit mode and pretty much same code as you but no joy. Here is what I am doing. I set a breakpoint in the section where it should change the width but it never gets there.
// TRIED GridEditableItem here too and neither ever enters if statement
This is really driving me nuts. Can you see something really simple I am missing as its so obvious I just cannot spot it?
Thanks
I am using form edit mode and pretty much same code as you but no joy. Here is what I am doing. I set a breakpoint in the section where it should change the width but it never gets there.
protected void RadGridShifts_ItemDataBound(object sender, GridItemEventArgs e) { try { // Perform default value settings if (e.Item.OwnerTableView.IsItemInserted && e.Item is GridEditFormInsertItem) { // Auto complete when the shift was created GridEditFormInsertItem item = (GridEditFormInsertItem)e.Item; TextBox textBox = (TextBox)item["Shift_Created_Date"].Controls[0]; textBox.Text = DateTime.UtcNow.ToString(); } // Item about to be edited if (!(e.Item is GridDataInsertItem) && e.Item.IsInEditMode) { RadDateTimePicker DeadlineRadDatePicker = (RadDateTimePicker)e.Item.FindControl("Shift_DeadlineRadDatePicker"); DeadlineRadDatePicker.MinDate = DateTime.Now.Date; }// TRIED GridEditableItem here too and neither ever enters if statement
if (e.Item is GridEditFormItem && e.Item.IsInEditMode && e.Item.OwnerTableView.Name == "GridTableViewLocations") { GridEditableItem editItem = (GridEditableItem)e.Item; DropDownList ddl = (DropDownList)editItem["LocationLookup"].Controls[0]; ddl.Width = Unit.Pixel(500); } // Control whether edit button should be enabled if (e.Item is GridDataItem) { GridDataItem item = (GridDataItem)e.Item; Button btnEdit = (Button)item["EditButton"].Controls[0]; DateTime? dateDeadline = DateTime.Parse(((DataRowView)e.Item.DataItem)["Shift_Deadline"].ToString()); if (btnEdit != null && dateDeadline.HasValue) if (dateDeadline < DateTime.UtcNow) btnEdit.Enabled = false; } } catch (Exception ex) { } }<DetailTables> <telerik:GridTableView runat="server" DataSourceID="ObjectDataShiftLocations" DataKeyNames="Shift_Id" ShowFooter="false" CommandItemDisplay="Top" CommandItemSettings-AddNewRecordText="Add New Location To Shift" AllowAutomaticDeletes="True" AllowAutomaticInserts="True" AllowAutomaticUpdates="True" OnNeedDataSource="RadGridLocation_NeedDataSource" Name="GridTableViewLocations"> <PagerStyle AlwaysVisible="false" /> <ParentTableRelation> <telerik:GridRelationFields DetailKeyField="Shift_Id" MasterKeyField="Id" /> </ParentTableRelation> <CommandItemSettings AddNewRecordText="Add New Location To Shift"></CommandItemSettings> <Columns> <telerik:GridButtonColumn CommandName="Edit" Text="Edit" UniqueName="commandEdit" ButtonType="ImageButton"> <ItemStyle HorizontalAlign="Center" Width="30px"></ItemStyle> </telerik:GridButtonColumn> <telerik:GridButtonColumn CommandName="Delete" Text="Remove" UniqueName="commandDelete" ButtonType="ImageButton"> <ItemStyle HorizontalAlign="Center" Width="30px"></ItemStyle> </telerik:GridButtonColumn> <telerik:GridDropDownColumn UniqueName="LocationLookup" DataSourceID="ObjectDataSourceLocationLookup" DataField="Location_Id" ListValueField="Location_Id" ListTextField="Short_Name" DropDownControlType="RadComboBox" HeaderText="Location To Check"> </telerik:GridDropDownColumn> </Columns> <EditFormSettings> <EditColumn UniqueName="EditCommandColumnLocationCheck" ButtonType="ImageButton"> </EditColumn> </EditFormSettings> </telerik:GridTableView> </DetailTables>This is really driving me nuts. Can you see something really simple I am missing as its so obvious I just cannot spot it?
Thanks
0
Accepted
Princy
Top achievements
Rank 2
answered on 23 Jul 2010, 01:20 PM
Hello Paul,
Since you are setting DropDownControlType property of GridDropDownColumn as 'RadComboBox', access the control as RadComboBox and see whether this solves your issue.
C#:
Thanks,
Princy.
Since you are setting DropDownControlType property of GridDropDownColumn as 'RadComboBox', access the control as RadComboBox and see whether this solves your issue.
C#:
protected void RadGrid1_ItemDataBound(object sender, GridItemEventArgs e) { if (e.Item is GridEditFormItem && e.Item.IsInEditMode && e.Item.OwnerTableView.Name == "GridTableViewLocations") { GridEditableItem editItem = (GridEditableItem)e.Item; RadComboBox combo= (RadComboBox)editItem["LocationLookup"].Controls[0]; combo.Width = Unit.Pixel(500); } }Thanks,
Princy.
0
Paul
Top achievements
Rank 1
answered on 23 Jul 2010, 02:28 PM
Many thanks Princy. The Master strikes again