Hello,
I have a RadGrid that is using EditFormType="AutoGenerated". I am using the InsertCommand handler to harvest the values from the controls and insert a "Video" record. There are a couple of RadComboBox controls, numerous RadTextBox controls and a RadEditor.
The grid also has GridTemplateColumn definitions for a couple of the RadTextBoxes so that I can attach the Validator to validate an integer was entered. The RadComboBoxes are also in a GridTemplateColumn.
There are other grids in the project that use EditFormType="AutoGenerated" and I am able to get the values looping through the RenderColumns. This works..
If I use that same construct for the way this template is layed out I am not sure how to access the values in the GridBoundColumns because the cast below does not work.
So I am unsure how to get the values from this scenario. Here is my markup for the RadGrid.
1) So I am unclear how to get the values from the GridBoundColumns or the nested controls in the GridTemplateColumns.
2) Also, this scenario is in INSERT. Does it differ in the UpdateCommand handler?
Any suggestions would be appreciated.
Thanks,
Reid
I have a RadGrid that is using EditFormType="AutoGenerated". I am using the InsertCommand handler to harvest the values from the controls and insert a "Video" record. There are a couple of RadComboBox controls, numerous RadTextBox controls and a RadEditor.
The grid also has GridTemplateColumn definitions for a couple of the RadTextBoxes so that I can attach the Validator to validate an integer was entered. The RadComboBoxes are also in a GridTemplateColumn.
There are other grids in the project that use EditFormType="AutoGenerated" and I am able to get the values looping through the RenderColumns. This works..
foreach
(GridColumn column
in
e.Item.OwnerTableView.RenderColumns)
{
if
(column
is
IGridEditableColumn)
{
IGridEditableColumn editableCol = (column
as
IGridEditableColumn);
if
(editableCol.IsEditable)
{
editor = editMan.GetColumnEditor(editableCol);
if
(editor
is
GridTextColumnEditor)
{
editorText = (editor
as
GridTextColumnEditor).Text;
editorValue = (editor
as
GridTextColumnEditor).Text;
if
(editableCol.Column.UniqueName ==
"AddressTypeStr"
)
{
newAddressType.AddressTypeStr = editorValue.ToString();
}
if
(editableCol.Column.UniqueName ==
"TypeDescription"
)
{
newAddressType.TypeDescription = editorValue.ToString();
}
}
}
}
}
// ForEach
If I use that same construct for the way this template is layed out I am not sure how to access the values in the GridBoundColumns because the cast below does not work.
if
(editor
is
GridBoundColumn)
{
editorText = (editor
as
GridBoundColumn).Text;
editorValue = (editor
as
GridBoundColumn).Text;
}
So I am unsure how to get the values from this scenario. Here is my markup for the RadGrid.
<
telerik:RadGrid
ID
=
"ctrlRadGridVideos"
runat
=
"server"
Height
=
"700"
AllowFilteringByColumn
=
"True"
EnableAJAX
=
"true"
AllowPaging
=
"True"
AllowSorting
=
"True"
AutoGenerateColumns
=
"False"
GridLines
=
"None"
ShowGroupPanel
=
"True"
ShowStatusBar
=
"True"
Skin
=
"Telerik"
>
<
ClientSettings
EnableRowHoverStyle
=
"true"
EnablePostBackOnRowClick
=
"true"
AllowColumnsReorder
=
"true"
AllowDragToGroup
=
"True"
>
<
Selecting
AllowRowSelect
=
"True"
/>
<
Scrolling
AllowScroll
=
"True"
UseStaticHeaders
=
"True"
/>
<
Resizing
AllowColumnResize
=
"True"
/>
</
ClientSettings
>
<
MasterTableView
CommandItemDisplay
=
"TopAndBottom"
DataKeyNames
=
"PrimaryKey"
EditItemStyle-ForeColor
=
"#669999"
>
<
RowIndicatorColumn
>
<
HeaderStyle
Width
=
"100px"
/>
</
RowIndicatorColumn
>
<
ExpandCollapseColumn
>
<
HeaderStyle
Width
=
"100px"
/>
</
ExpandCollapseColumn
>
<
Columns
>
<
telerik:GridEditCommandColumn
HeaderStyle-Width
=
"50"
ItemStyle-ForeColor
=
"Blue"
UniqueName
=
"Edit"
>
<
HeaderStyle
Width
=
"50px"
/>
<
ItemStyle
ForeColor
=
"Blue"
/>
</
telerik:GridEditCommandColumn
>
<
telerik:GridBoundColumn
DataField
=
"VideoTitle"
HeaderText
=
"Video Title"
UniqueName
=
"VideoTitle"
EditFormColumnIndex
=
"0"
ShowSortIcon
=
"true"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"VideoSubTitle"
HeaderText
=
"Sub Title"
UniqueName
=
"VideoSubTitle"
EditFormColumnIndex
=
"0"
ShowSortIcon
=
"true"
>
</
telerik:GridBoundColumn
>
<
telerik:GridTemplateColumn
HeaderText
=
"Description"
UniqueName
=
"VideoDescription"
EditFormColumnIndex
=
"1"
Visible
=
"false"
HeaderStyle-VerticalAlign
=
"Top"
HeaderStyle-Height
=
"100%"
ShowSortIcon
=
"true"
>
<
EditItemTemplate
>
<
telerik:RadEditor
ID
=
"ctrlVideoDescriptionRadEditor"
runat
=
"server"
Content='<%# Bind("VideoDescription") %>'
Height="100%" Width="100%" Skin="Web20">
<
CssFiles
>
<
telerik:EditorCssFile
Value
=
"~/Content/css/RadEditorContentArea.css"
/>
</
CssFiles
>
</
telerik:RadEditor
>
</
EditItemTemplate
>
</
telerik:GridTemplateColumn
>
<
telerik:GridTemplateColumn
HeaderText
=
"Type"
UniqueName
=
"VideoType"
EditFormColumnIndex
=
"0"
Visible
=
"false"
>
<
EditItemTemplate
>
<
telerik:RadComboBox
ID
=
"ctrlVideoTypeRadComboBox"
runat
=
"server"
Width
=
"220px"
Skin
=
"Web20"
/>
</
EditItemTemplate
>
<
ItemTemplate
>
<
asp:Label
ID
=
"ctrlVideoTypeLabel"
runat
=
"server"
Text
=
"Video Type"
/>
</
ItemTemplate
>
</
telerik:GridTemplateColumn
>
<
telerik:GridTemplateColumn
HeaderText
=
"Category"
UniqueName
=
"VideoCategory"
EditFormColumnIndex
=
"0"
Visible
=
"false"
>
<
EditItemTemplate
>
<
telerik:RadComboBox
ID
=
"ctrlVideoCategoryRadComboBox"
runat
=
"server"
Width
=
"220px"
Skin
=
"Web20"
/>
</
EditItemTemplate
>
<
ItemTemplate
>
<
asp:Label
ID
=
"ctrlVideoCategoryLabel"
runat
=
"server"
Text
=
"Video Category"
/>
</
ItemTemplate
>
</
telerik:GridTemplateColumn
>
<
telerik:GridBoundColumn
DataField
=
"VideoHyperlink"
HeaderText
=
"URL Hyperlink"
UniqueName
=
"VideoHyperlink"
EditFormColumnIndex
=
"0"
Visible
=
"false"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"VideoSEOKeywords"
HeaderText
=
"SEO Keywords"
UniqueName
=
"SEOKeywords"
EditFormColumnIndex
=
"0"
Visible
=
"false"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"VideoSEODescription"
HeaderText
=
"SEO Description"
UniqueName
=
"VideoSEODescription"
EditFormColumnIndex
=
"0"
Visible
=
"false"
>
</
telerik:GridBoundColumn
>
<
telerik:GridTemplateColumn
HeaderText
=
"Rating"
UniqueName
=
"Rating"
EditFormColumnIndex
=
"0"
>
<
EditItemTemplate
>
<
asp:TextBox
ID
=
"ctrlVideoRatingRadTextBox"
runat
=
"server"
ValidationGroup
=
"checkRating"
Width
=
"80px"
/>
<
asp:RegularExpressionValidator
ID
=
"RegularExpressionValidatorRating"
runat
=
"server"
ControlToValidate
=
"ctrlVideoRatingRadTextBox"
ErrorMessage
=
"Please Enter Only Numbers"
ValidationExpression
=
"^\d+$"
ValidationGroup
=
"checkRating"
ForeColor
=
"Red"
>
</
asp:RegularExpressionValidator
>
</
EditItemTemplate
>
<
ItemTemplate
>
<
asp:Label
ID
=
"ctrlVideoRatingLabel"
runat
=
"server"
Text
=
""
/>
</
ItemTemplate
>
</
telerik:GridTemplateColumn
>
<
telerik:GridTemplateColumn
HeaderText
=
"Height"
UniqueName
=
"Height"
EditFormColumnIndex
=
"0"
Visible
=
"false"
>
<
EditItemTemplate
>
<
asp:TextBox
ID
=
"ctrlVideoHeightTextBox"
runat
=
"server"
ValidationGroup
=
"checkHeight"
Width
=
"80px"
/>
<
asp:RegularExpressionValidator
ID
=
"RegularExpressionValidatorHeight"
runat
=
"server"
ControlToValidate
=
"ctrlVideoHeightTextBox"
ErrorMessage
=
"Please Enter Only Numbers"
ValidationExpression
=
"^\d+$"
ValidationGroup
=
"checkHeight"
ForeColor
=
"Red"
>
</
asp:RegularExpressionValidator
>
</
EditItemTemplate
>
<
ItemTemplate
>
<
asp:Label
ID
=
"ctrlVideoHeightLabel"
runat
=
"server"
Text
=
"Height"
/>
</
ItemTemplate
>
</
telerik:GridTemplateColumn
>
<
telerik:GridTemplateColumn
HeaderText
=
"Width"
UniqueName
=
"Width"
EditFormColumnIndex
=
"0"
Visible
=
"false"
>
<
EditItemTemplate
>
<
asp:TextBox
ID
=
"ctrlVideoWidthTextBox"
runat
=
"server"
ValidationGroup
=
"checkWidth"
Width
=
"80px"
/>
<
asp:RegularExpressionValidator
ID
=
"RegularExpressionValidatorWidth"
runat
=
"server"
ControlToValidate
=
"ctrlVideoWidthTextBox"
ErrorMessage
=
"Please Enter Only Numbers"
ValidationExpression
=
"^\d+$"
ValidationGroup
=
"checkWidth"
ForeColor
=
"Red"
>
</
asp:RegularExpressionValidator
>
</
EditItemTemplate
>
<
ItemTemplate
>
<
asp:Label
ID
=
"ctrlVideoWidthLabel"
runat
=
"server"
Text
=
"Width"
/>
</
ItemTemplate
>
</
telerik:GridTemplateColumn
>
<%-- <
telerik:GridTemplateColumn
HeaderText
=
"Hyperlink"
UniqueName
=
"VideoHyperlink"
EditFormColumnIndex
=
"0"
>
<
EditItemTemplate
>
<
telerik:RadTextBox
ID
=
"ctrlVideoHyperlinkRadTextBox"
runat
=
"server"
Width
=
"220px"
Skin
=
"Web20"
/>
</
EditItemTemplate
>
<
ItemTemplate
>
<
asp:Label
ID
=
"ctrlVideoHyperLinkLabel"
runat
=
"server"
Text
=
"Video Hyperlink"
/>
</
ItemTemplate
>
</
telerik:GridTemplateColumn
> --%>
<
telerik:GridButtonColumn
CommandName
=
"Delete"
Text
=
"Delete"
UniqueName
=
"Delete"
HeaderStyle-Width
=
"50"
ConfirmText
=
"Confirm: Delete Selected Video?"
ConfirmTitle
=
"Confirmation"
ItemStyle-ForeColor
=
"Blue"
>
<
HeaderStyle
Width
=
"50px"
/>
<
ItemStyle
ForeColor
=
"Blue"
/>
</
telerik:GridButtonColumn
>
</
Columns
>
<
EditItemStyle
ForeColor
=
"#669999"
/>
<
PagerStyle
AlwaysVisible
=
"True"
/>
<
EditFormSettings
EditFormType
=
"AutoGenerated"
FormStyle-Height
=
"500"
FormStyle-Width
=
"100%"
ColumnNumber
=
"3"
>
<%-- <
EditColumn
UniqueName
=
"EditColumn0"
>
</
EditColumn
>--%>
<
FormTableItemStyle
Wrap
=
"False"
></
FormTableItemStyle
>
<
FormCaptionStyle
CssClass
=
"EditFormHeader"
></
FormCaptionStyle
>
<
FormMainTableStyle
GridLines
=
"None"
CellSpacing
=
"0"
CellPadding
=
"3"
Width
=
"100%"
/>
<
FormTableStyle
GridLines
=
"Horizontal"
CellSpacing
=
"0"
CellPadding
=
"2"
CssClass
=
"module"
Height
=
"110px"
Width
=
"100%"
/>
<
FormTableAlternatingItemStyle
Wrap
=
"False"
></
FormTableAlternatingItemStyle
>
<
FormStyle
Height
=
"700px"
Width
=
"100%"
/>
</
EditFormSettings
>
</
MasterTableView
>
</
telerik:RadGrid
>
1) So I am unclear how to get the values from the GridBoundColumns or the nested controls in the GridTemplateColumns.
2) Also, this scenario is in INSERT. Does it differ in the UpdateCommand handler?
Any suggestions would be appreciated.
Thanks,
Reid