I'm in the process of updating to use the newest version of UI for ASP.NET AJAX. We were using Q2 2014.
One of our pages had a RadGrid with 12 visible columns. After upgrading to 2017_9_913 3 of the columns no longer display. The only update we made to the .aspx file was to reference the new Telerik DLL.
See attached images showing screen shot and code.
5 Answers, 1 is accepted
Please make sure you are not using DataBind() method to bind the grid. Performing complex grid operations such as Inserting, Deleting, Updating, Hierarchy relations, Grouping, Exporting, Paging, Sorting, Filtering, etc. require accommodating appropriate database operations. Therefore, we suggest you to avoid Simple Databinding and strongly recommend the use of more advanced databinding methods, which automatically handle the aforementioned functions:
Declarative DataSource (DataSourceID property)
Programmatic Data Binding (NeedDataSource event, + DetailTableDataBind for hierarchy). You should set the DataSource property ONLY within these event handlers.
Looking forward to your reply.
Regards,
Eyup
Progress Telerik
I compared the rendering through browser debugger of both the old and the new DLL. See attached file. They do not render the same.
After removing the 3 GridBoundColumns having Display = False the columns displayed.
Now I just need to figure out how to have these 3 hidden data elements available to the code behind.
I got this to work by placing the 3 GridBoundColumn elements having Display=False at the end of the <Columns> element of the RadGrid. If I placed these 3 Display=False elements at the beginning the first 3 columns would not display. If I placed them between other columns the subsequent columns would not display.
<
telerik:RadGrid
ID
=
"PartAvailabilityGrid"
runat
=
"server"
OnItemDataBound
=
"PartAvailabilityGrid_ItemDataBound"
OnItemCommand
=
"PartAvailabilityGrid_ItemCommand"
Width
=
"995px"
>
<
MasterTableView
AutoGenerateColumns
=
"False"
DataKeyNames
=
"Id"
ShowHeadersWhenNoRecords
=
"True"
NoMasterRecordsText
=
"Please add a part."
Width
=
"995px"
>
<
Columns
>
<
telerik:GridTemplateColumn
HeaderText
=
"Part Number"
HeaderStyle-Width
=
"100px"
ItemStyle-Width
=
"100px"
>
<
ItemTemplate
>
<
asp:Label
ID
=
"PartNumber"
runat
=
"server"
></
asp:Label
>
<
telerik:RadToolTip
ID
=
"PartNumberToolTip"
runat
=
"server"
TargetControlID
=
"PartNumber"
RelativeTo
=
"Element"
Position
=
"BottomCenter"
RenderInPageRoot
=
"true"
BackColor
=
"White"
BorderColor
=
"Black"
HideEvent
=
"LeaveToolTip"
Text
=
""
/>
</
ItemTemplate
>
</
telerik:GridTemplateColumn
>
<
telerik:GridBoundColumn
DataField
=
"ServiceObjectSerialModel"
HeaderText
=
"Serial: Model"
ReadOnly
=
"True"
HeaderStyle-Width
=
"100px"
ItemStyle-Width
=
"100px"
/>
<
telerik:GridBoundColumn
DataField
=
"UnitPrice"
HeaderText
=
"List Price"
ReadOnly
=
"True"
DataFormatString
=
"{0:C}"
HeaderStyle-Width
=
"80px"
ItemStyle-Width
=
"80px"
/>
<
telerik:GridBoundColumn
DataField
=
"MinOrderQuantity"
HeaderText
=
"Min Qty"
DataFormatString
=
"{0:F0}"
HeaderStyle-Width
=
"55px"
ItemStyle-Width
=
"55px"
/>
<
telerik:GridTemplateColumn
HeaderText
=
"Qty To Order"
UniqueName
=
"QtyToOrder"
HeaderStyle-Width
=
"65px"
ItemStyle-Width
=
"65px"
>
<
ItemTemplate
>
<
telerik:RadNumericTextBox
ID
=
"QtyToOrder"
runat
=
"server"
Enabled
=
"False"
AutoPostBack
=
"True"
OnTextChanged
=
"QtyToOrder_OnTextChanged"
MaxLength
=
"3"
NumberFormat-DecimalDigits
=
"0"
MinValue
=
"0"
MaxValue
=
"999"
Width
=
"60px"
>
</
telerik:RadNumericTextBox
>
</
ItemTemplate
>
</
telerik:GridTemplateColumn
>
<
telerik:GridTemplateColumn
HeaderText
=
"Replaced By"
HeaderStyle-Width
=
"100px"
ItemStyle-Width
=
"100px"
>
<
ItemTemplate
>
<
asp:Label
ID
=
"ReplacedBy"
runat
=
"server"
></
asp:Label
>
<
telerik:RadToolTip
ID
=
"ReplacedByToolTip"
runat
=
"server"
TargetControlID
=
"ReplacedBy"
RelativeTo
=
"Element"
Position
=
"BottomCenter"
RenderInPageRoot
=
"true"
BackColor
=
"White"
BorderColor
=
"Black"
HideEvent
=
"LeaveToolTip"
Text
=
"Part is not superceded"
/>
</
ItemTemplate
>
</
telerik:GridTemplateColumn
>
<
telerik:GridTemplateColumn
HeaderText
=
"Truck Qty"
HeaderStyle-Width
=
"55px"
ItemStyle-Width
=
"55px"
>
<
ItemTemplate
>
<
asp:Label
ID
=
"TruckQty"
runat
=
"server"
></
asp:Label
>
<
telerik:RadToolTip
ID
=
"TruckQtyToolTip"
runat
=
"server"
TargetControlID
=
"TruckQty"
RelativeTo
=
"Element"
Position
=
"BottomCenter"
RenderInPageRoot
=
"true"
BackColor
=
"White"
BorderColor
=
"Black"
HideEvent
=
"LeaveToolTip"
Text
=
""
/>
</
ItemTemplate
>
</
telerik:GridTemplateColumn
>
<
telerik:GridBoundColumn
DataField
=
"BranchQuantity"
HeaderText
=
"Branch Qty"
DataFormatString
=
"{0:F0}"
HeaderStyle-Width
=
"55px"
ItemStyle-Width
=
"55px"
/>
<
telerik:GridBoundColumn
DataField
=
"PiquaQuantity"
HeaderText
=
"Piqua Qty"
DataFormatString
=
"{0:F0}"
HeaderStyle-Width
=
"55px"
ItemStyle-Width
=
"55px"
/>
<
telerik:GridTemplateColumn
HeaderText
=
"Source"
UniqueName
=
"SourceWhse"
>
<
ItemTemplate
>
<
telerik:RadDropDownList
runat
=
"server"
ID
=
"SourceWhse"
Enabled
=
"False"
AutoPostBack
=
"True"
OnSelectedIndexChanged
=
"SourceWhse_SelectedIndexChanged"
>
</
telerik:RadDropDownList
>
</
ItemTemplate
>
</
telerik:GridTemplateColumn
>
<
telerik:GridTemplateColumn
HeaderText
=
"Delivery Method"
UniqueName
=
"DeliveryMethod"
>
<
ItemTemplate
>
<
telerik:RadDropDownList
runat
=
"server"
ID
=
"DeliveryMethod"
Enabled
=
"False"
>
</
telerik:RadDropDownList
>
</
ItemTemplate
>
</
telerik:GridTemplateColumn
>
<
telerik:GridButtonColumn
ConfirmText
=
"Remove this part?"
ConfirmDialogType
=
"RadWindow"
ConfirmTitle
=
"Remove"
HeaderText
=
"Remove"
HeaderStyle-Width
=
"50px"
ItemStyle-Width
=
"50px"
ButtonType
=
"ImageButton"
ImageUrl
=
"~/_imgs/16_l_remove.gif"
CommandName
=
"Delete"
Text
=
"Remove"
UniqueName
=
"RemoveColumn"
>
</
telerik:GridButtonColumn
>
<
telerik:GridBoundColumn
DataField
=
"ServiceObjectServiceOrderResourceId"
Display
=
"False"
/>
<
telerik:GridBoundColumn
DataField
=
"UseAltItemId"
Display
=
"False"
/>
<
telerik:GridBoundColumn
DataField
=
"ItemStatusID"
Display
=
"false"
/>
</
Columns
>
</
MasterTableView
>
</
telerik:RadGrid
>
Another possible approach to achieve this requirement would be to use the DataKeyNames collection provided by the MasterTableView tag:
http://docs.telerik.com/devtools/aspnet-ajax/controls/grid/rows/accessing-cells-and-rows#accessing-raw-field-data-and-key-values
You can find further information about the new Lightweight RenderMode here:
http://docs.telerik.com/devtools/aspnet-ajax/controls/grid/mobile-support/render-modes
Regards,
Eyup
Progress Telerik