I have a basic grid that I want to allow InPlace editing of a few columns (I will later add an Edit Form to allow for full editing but, for now, this is it). One of the columns of the grid I want to be a GridDropDownColumn and default it to display the current data and switch to a dropdownlist in Edit mode (again, using InPlace editing) and I want the default selected value to be the current value.
I've been through every demo and sample I could find in Telerik's document but I cannot get the GridDropDownColumn to do ANYTHING. No data shows up for it and no dropdown ever shows when I click the down arrow. I finally at least got some data to display by falling back to a GridTemplateColumn and putting in an asp:DropDownList control in the EditItemTemplate. Here is the ASPX:
Codebehind:
I've been through every demo and sample I could find in Telerik's document but I cannot get the GridDropDownColumn to do ANYTHING. No data shows up for it and no dropdown ever shows when I click the down arrow. I finally at least got some data to display by falling back to a GridTemplateColumn and putting in an asp:DropDownList control in the EditItemTemplate. Here is the ASPX:
<
asp:ObjectDataSource
ID
=
"odsGetTaskStartTimes"
runat
=
"server"
TypeName
=
"DMCproWebApp.BALHelper"
SelectMethod
=
"GetTaskStartTimes"
/>
<
asp:ObjectDataSource
id
=
"odsGetProgramServicesFast"
runat
=
"server"
TypeName
=
"DMCproWebApp.BALHelper"
SelectMethod
=
"GetProgramServicesFast"
>
<
SelectParameters
>
<
asp:ControlParameter
Name
=
"ProgramNumber"
ControlID
=
"hiddenProgramListValue"
PropertyName
=
"Value"
DbType
=
"String"
/>
</
SelectParameters
>
</
asp:ObjectDataSource
>
<
asp:ObjectDataSource
ID
=
"odsGetProgramServiceTypes"
runat
=
"server"
TypeName
=
"DMCproWebApp.BALHelper"
SelectMethod
=
"GetProgramServiceTypes"
/>
<
telerik:RadAjaxManager
ID
=
"RadAjaxManager1"
runat
=
"server"
>
<
AjaxSettings
>
<
telerik:AjaxSetting
AjaxControlID
=
"radgrdProgramServicesFast"
>
<
UpdatedControls
><
telerik:AjaxUpdatedControl
ControlID
=
"radgrdProgramServicesFast"
LoadingPanelID
=
"RadAjaxLoadingPanel1"
/></
UpdatedControls
>
</
telerik:AjaxSetting
>
</
AjaxSettings
>
</
telerik:RadAjaxManager
>
<
div
class
=
"GridViewContainer"
style
=
"width:944px;"
>
<
telerik:RadGrid
ID
=
"radgrdProgramServicesFast"
runat
=
"server"
Width
=
"942px"
DataSourceID
=
"odsGetProgramServicesFast"
EnableLinqExpressions
=
"true"
EnableEmbeddedSkins
=
"false"
Skin
=
"DMCpro"
ShowStatusBar
=
"true"
AutoGenerateColumns
=
"false"
AllowFilteringByColumn
=
"false"
AllowPaging
=
"false"
AllowSorting
=
"true"
>
<
ClientSettings
EnableRowHoverStyle
=
"true"
Selecting-AllowRowSelect
=
"true"
Scrolling-AllowScroll
=
"true"
Scrolling-ScrollHeight
=
"280px"
/>
<
GroupingSettings
CaseSensitive
=
"false"
/>
<
MasterTableView
TableLayout
=
"Fixed"
DataKeyNames
=
"ProgramNumber,fldVenue,LineNumber,ItemNumber,OfficeLocation,ProgramLocation,ProgramStartDate,fldStatus,fldTruckLoadIn,AddToSchedule,fldAddtoContract,CustomerID,Description,RFPCount"
EditMode
=
"InPlace"
>
<
ItemStyle
Font-Size
=
"Small"
Wrap
=
"false"
/>
<
AlternatingItemStyle
Font-Size
=
"Small"
Wrap
=
"false"
/>
<
Columns
>
<
telerik:GridEditCommandColumn
ButtonType
=
"ImageButton"
HeaderStyle-CssClass
=
"radGridViewHeader"
HeaderStyle-Width
=
"46px"
EditImageUrl
=
"~/img/Edit16x16.png"
UpdateImageUrl
=
"../img/Save16x16.png"
CancelImageUrl
=
"../img/Cancel16x16.png"
/>
<
telerik:GridImageColumn
UniqueName
=
"RFP"
ImageUrl
=
"~/img/Check-16x16.png"
HeaderText
=
"RFP"
HeaderStyle-CssClass
=
"radGridViewHeader"
HeaderStyle-Width
=
"22px"
HeaderStyle-HorizontalAlign
=
"Left"
ItemStyle-HorizontalAlign
=
"Left"
/>
<
telerik:GridBoundColumn
DataField
=
"fldTruckLoadIn"
HeaderText
=
"Sort"
SortExpression
=
"fldTruckLoadIn"
HeaderStyle-CssClass
=
"radGridViewHeader"
HeaderStyle-Width
=
"35px"
HeaderStyle-HorizontalAlign
=
"Left"
AllowFiltering
=
"false"
/>
<
telerik:GridCheckBoxColumn
DataField
=
"AddToSchedule"
HeaderText
=
"QS"
SortExpression
=
"AddToSchedule"
HeaderStyle-CssClass
=
"radGridViewHeader"
HeaderStyle-Width
=
"25px"
HeaderStyle-HorizontalAlign
=
"Left"
AllowFiltering
=
"false"
/>
<
telerik:GridCheckBoxColumn
DataField
=
"fldAddToContract"
HeaderText
=
"Add"
SortExpression
=
"fldAddToContract"
HeaderStyle-CssClass
=
"radGridViewHeader"
HeaderStyle-Width
=
"25px"
HeaderStyle-HorizontalAlign
=
"Left"
AllowFiltering
=
"false"
/>
<
telerik:GridBoundColumn
DataField
=
"Description"
HeaderText
=
"Title"
SortExpression
=
"Description"
HeaderStyle-CssClass
=
"radGridViewHeader"
HeaderStyle-Width
=
"135px"
HeaderStyle-HorizontalAlign
=
"Left"
AllowFiltering
=
"false"
/>
<
telerik:GridTemplateColumn
HeaderText
=
"Service"
UniqueName
=
"ServiceType"
HeaderStyle-CssClass
=
"radGridViewHeader"
HeaderStyle-Width
=
"175px"
HeaderStyle-HorizontalAlign
=
"Left"
AllowFiltering
=
"false"
>
<
ItemTemplate
>
<%#DataBinder.Eval(Container.DataItem, "ServiceType")%>
</
ItemTemplate
>
<
EditItemTemplate
>
<
asp:DropDownList
ID
=
"ddlProgramServiceTypes"
runat
=
"server"
Width
=
"175px"
DataSourceID
=
"odsGetProgramServiceTypes"
DataTextField
=
"fldService"
DataValueField
=
"fldServiceID"
/>
</
EditItemTemplate
>
</
telerik:GridTemplateColumn
>
<
telerik:GridDropDownColumn
DataField
=
"ServiceType"
DataSourceID
=
"odsGetProgramServiceType"
HeaderText
=
"Service 2"
ListTextField
=
"fldservice"
ListValueField
=
"fldServiceID"
UniqueName
=
"Service2"
HeaderStyle-CssClass
=
"radGridViewHeader"
HeaderStyle-Width
=
"175px"
>
</
telerik:GridDropDownColumn
>
<
telerik:GridBoundColumn
DataField
=
"StartDate"
HeaderText
=
"Start Date"
SortExpression
=
"StartDate"
DataFormatString
=
"{0:MM/dd/yyyy}"
HeaderStyle-CssClass
=
"radGridViewHeader"
HeaderStyle-Width
=
"75px"
HeaderStyle-HorizontalAlign
=
"Left"
AllowFiltering
=
"false"
ReadOnly
=
"true"
/>
<
telerik:GridBoundColumn
DataField
=
"EndTime"
HeaderText
=
"Ends"
SortExpression
=
"EndTime"
DataFormatString
=
"{0:MM/dd/yyyy}"
HeaderStyle-CssClass
=
"radGridViewHeader"
HeaderStyle-Width
=
"75px"
HeaderStyle-HorizontalAlign
=
"Left"
AllowFiltering
=
"false"
ReadOnly
=
"true"
/>
<
telerik:GridBoundColumn
DataField
=
"LineTotal"
HeaderText
=
"Service Total"
SortExpression
=
"LineTotal"
UniqueName
=
"LineTotal"
DataFormatString
=
"{0:c}"
HeaderStyle-CssClass
=
"radGridViewHeader"
HeaderStyle-Width
=
"90px"
HeaderStyle-HorizontalAlign
=
"Left"
ItemStyle-HorizontalAlign
=
"Right"
ReadOnly
=
"true"
/>
<
telerik:GridBoundColumn
DataField
=
"fldServiceVenue"
HeaderText
=
"Costing Sheet"
SortExpression
=
"fldServiceVenue"
UniqueName
=
"fldServiceVenue"
HeaderStyle-CssClass
=
"radGridViewHeader"
HeaderStyle-Width
=
"175px"
HeaderStyle-HorizontalAlign
=
"Left"
ItemStyle-HorizontalAlign
=
"Left"
ReadOnly
=
"true"
/>
<
telerik:GridBoundColumn
DataField
=
"Cost"
Visible
=
"false"
ReadOnly
=
"true"
/>
<
telerik:GridBoundColumn
DataField
=
"fldVenue"
Visible
=
"false"
ReadOnly
=
"true"
/>
<
telerik:GridBoundColumn
DataField
=
"LineNumber"
Visible
=
"false"
ReadOnly
=
"true"
/>
</
Columns
>
</
MasterTableView
>
</
telerik:RadGrid
>
</
div
>
Codebehind:
Private
Sub
radgrdProgramServicesFast_ItemDataBound(
ByVal
sender
As
Object
,
ByVal
e
As
Telerik.Web.UI.GridItemEventArgs)
Handles
radgrdProgramServicesFast.ItemDataBound
If
(
TypeOf
e.Item
Is
GridDataItem)
Then
Dim
gdi
As
GridDataItem =
DirectCast
(e.Item, GridDataItem)
Dim
LineTotal
As
String
= Replace(gdi.Item(
"LineTotal"
).Text,
" "
,
"0"
)
Dim
Cost
As
String
= Replace(gdi.Item(
"Cost"
).Text,
" "
,
"0"
)
Dim
chkQS
As
CheckBox =
DirectCast
(gdi.Item(
"AddToSchedule"
).Controls(0), CheckBox)
Dim
chkAdd
As
CheckBox =
DirectCast
(gdi.Item(
"fldAddToContract"
).Controls(0), CheckBox)
m_Proposed +=
CDec
(IIf(LineTotal =
String
.Empty, 0, LineTotal)) +
CDec
(IIf(Cost =
String
.Empty, 0, Cost))
m_QS +=
CDec
(IIf(chkQS.Checked, LineTotal, 0))
m_Total +=
CDec
(IIf(chkAdd.Checked, LineTotal, 0))
Dim
RFPCount
As
Integer
=
CInt
(radgrdProgramServicesFast.MasterTableView.DataKeyValues(e.Item.ItemIndex)(
"RFPCount"
))
If
(RFPCount = 0)
Then
Dim
img
As
Image =
DirectCast
(gdi.Item(
"RFP"
).Controls(0), Image)
img.Visible =
False
End
If
Dim
cp
As
ContentPlaceHolder = Page.Form.FindControl(
"MasterContentPlaceHolder"
)
Dim
status
As
Integer
=
DirectCast
(cp.FindControl(
"ddlProgramStatus"
), DropDownList).SelectedValue
If
(gdi.EditFormItem IsNot
Nothing
)
Then
If
(status <> 22)
Then
gdi.Item(
"btnEditService"
).Visible =
True
ElseIf
(status = 22)
And
Roles.IsUserInRole(Permissions.Programs_Change_Sold_Invoiced)
Then
gdi.Item(
"btnEditService"
).Visible =
True
Else
gdi.Item(
"btnEditService"
).Visible =
False
End
If
End
If
End
If
End
Sub