Telerik,
I found a bug while using RadGrid client side binding.
I heva a scenario as below. Please note the attributes PageSize="10" and ItemStyle-CssClass= "fId" and "fName". When I run the page with no change of the PageSize, there is everything OK, but if the PageSize changes to the higher number, the rows following the row number 10, have no class "fId" and "fName".
There is any workaround to fix his problem? Well, one would be with jQuerry to set the classes according to the column position, but I think the better solution would be to properly set some RadGrid inner state that does not properly change when PageSize changes.
I am using “Telerik RadControls for ASP.NET Ajax” version “2011.2.712.35” with DNN 6.0.2.
Thanks,
Kristijan
<telerik:RadGrid ID="rgvMain" runat="server" Height="850px" OnItemCreated="rgvMain_ItemCreated" CssClass="fMainGrid" AllowPaging="True" PageSize="10" EnableLinqExpressions="false"> <MasterTableView DataKeyNames="Id" AutoGenerateColumns="false" AllowFilteringByColumn="True" AllowSorting="True" TableLayout="Auto" CssClass="fSelectable fMainTable" OverrideDataSourceControlSorting="true" CommandItemDisplay="Top"> <CommandItemTemplate> <telerik:RadButton ID="btnAdd" runat="server" AutoPostBack="false" OnClientClicked="LoadNewElement" CausesValidation="false"> <Icon PrimaryIconUrl="~/images/Add.gif" PrimaryIconLeft="5px" /> </telerik:RadButton> <telerik:RadButton ID="btnImport" runat="server" AutoPostBack="false" OnClientClicked="ImportCompanies" CausesValidation="false"> <Icon PrimaryIconUrl="~/DesktopModules/VipCrm/Images/import.png" PrimaryIconLeft="5px" /> </telerik:RadButton> <telerik:RadButton ID="btnDelete" runat="server" AutoPostBack="false" CausesValidation="false" Enabled="false" CssClass="fEnable" OnClientClicking="DeleteCompany"> <Icon PrimaryIconUrl="~/images/delete.gif" PrimaryIconLeft="5px" /> </telerik:RadButton> <telerik:RadButton ID="btnNewPerson" runat="server" AutoPostBack="false" CssClass="fEnable" Enabled="false" OnClientClicked="NewPerson" CausesValidation="false"> <Icon PrimaryIconUrl="~/DesktopModules/VipCrm/Images/add_person.png" PrimaryIconLeft="5px" /> </telerik:RadButton> <telerik:RadButton ID="btnNewCall" runat="server" AutoPostBack="false" CssClass="fEnable" Enabled="false" OnClientClicked="NewPhoneCallEmbedded" CausesValidation="false"> <Icon PrimaryIconUrl="~/DesktopModules/VipCrm/Images/Telephone.png" PrimaryIconLeft="5px" /> </telerik:RadButton> <telerik:RadButton ID="btnNewOpportunity" runat="server" AutoPostBack="false" CssClass="fEnable" Enabled="false" OnClientClicked="NewOpportunityEmbedded" CausesValidation="false"> <Icon PrimaryIconUrl="~/DesktopModules/VipCrm/Images/AddMoney.png" PrimaryIconLeft="5px" /> </telerik:RadButton> </CommandItemTemplate> <Columns> <telerik:GridBoundColumn DataField="Id" DataType="System.Int32" ItemStyle-CssClass="fId" SortExpression="Id" UniqueName="Id" /> <telerik:GridBoundColumn DataField="ShortName" HeaderText="ShortName" ItemStyle-CssClass="fName" SortExpression="ShortName" DataType="System.String" UniqueName="ShortName" CurrentFilterFunction="StartsWith" AutoPostBackOnFilter="true" FilterDelay="701" ShowFilterIcon="true" FilterListOptions="VaryByDataType" /> <telerik:GridCheckBoxColumn DataField="IsCustomer" UniqueName="IsCustomer" SortExpression="IsCustomer" AutoPostBackOnFilter="true" FilterDelay="701" ShowFilterIcon="false" DataType="System.String"> <FilterTemplate> <telerik:RadComboBox ID="rcbIsCustomer" AppendDataBoundItems="true" SelectedValue='<%# ((GridItem)Container).OwnerTableView.GetColumn("IsCustomer").CurrentFilterValue %>' runat="server" OnClientSelectedIndexChanged="IsCustomerChanged" Width="70px"> </telerik:RadComboBox> <telerik:RadScriptBlock ID="rsbIsCustomer" runat="server"> <script type="text/javascript"> function IsCustomerChanged(sender, args) { $find("<%# ((GridItem)Container).OwnerTableView.ClientID %>").filter("IsCustomer", args.get_item().get_value(), "EqualTo"); } </script> </telerik:RadScriptBlock> </FilterTemplate> </telerik:GridCheckBoxColumn> <telerik:GridBoundColumn DataField="Address" HeaderText="Address" SortExpression="Address" UniqueName="Address" CurrentFilterFunction="StartsWith" ShowFilterIcon="true" FilterListOptions="VaryByDataType" AutoPostBackOnFilter="true" FilterDelay="701" DataType="System.String" /> <telerik:GridBoundColumn DataField="PostTown" HeaderText="PostTown" SortExpression="PostTown" UniqueName="PostTown" CurrentFilterFunction="StartsWith" AutoPostBackOnFilter="true" FilterDelay="701" ShowFilterIcon="false" DataType="System.String" /> </Columns> </MasterTableView> <FilterMenu EnableImageSprites="False" /> <ClientSettings> <DataBinding Location="~/DesktopModules/MyModule/WsiEntriesTbl.asmx" SelectMethod="GetCompaniesData" SelectCountMethod="GetCompaniesCount" /> <ClientEvents OnDataBinding="rgvMainDataBinding" OnDataBound="rgvMainDataBound" OnDataBindingFailed="DataBindingFailed" /> <Resizing AllowColumnResize="true" /> <Selecting AllowRowSelect="True" EnableDragToSelectRows="false" /> <Scrolling AllowScroll="true" UseStaticHeaders="true" /> </ClientSettings> <PagerStyle Mode="NextPrevAndNumeric" AlwaysVisible="true" /> </telerik:RadGrid>
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %><%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %><!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml"><head runat="server"> <title></title></head><body> <form id="form1" runat="server"> <telerik:RadScriptManager ID="RadScriptManager1" runat="server"></telerik:RadScriptManager> <div> <telerik:RadComboBox ID="haulerDropDown" runat="server" DataSourceID = "haulerDataSource" DataTextField="Text" DataValueField="Value" AllowCustomText="true" Width="200" > </telerik:RadComboBox> <asp:RequiredFieldValidator ID="RequiredFieldValidator5" runat="server" ControlToValidate="haulerDropDown" ValidationGroup="HeaderValidationGroup" ErrorMessage="'Hauler' is required" Text="*" ForeColor="Red" /> </div> <asp:Button ID="Button1" runat="server" Text="Button" ValidationGroup="HeaderValidationGroup" /> <asp:ObjectDataSource ID="haulerDataSource" runat="server" SelectMethod="Hauler" TypeName="App.DropDowns"> </asp:ObjectDataSource> </form> </body></html>Option Strict OnOption Explicit OnPartial Class _Default Inherits System.Web.UI.Page Protected Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Dim _value As String = haulerDropDown.SelectedValue Dim _i As Integer = 1 End SubEnd ClassOption Strict OnOption Explicit OnImports Microsoft.VisualBasicNamespace App Public Class DropDown Public Property Value() As String Public Property Text() As String Public Property Selected() As Boolean Public Sub New() Me.Value = "" Me.Text = "" Me.Selected = False End Sub Public Sub New(ByVal value As String, ByVal text As String) Me.Value = value Me.Text = text Me.Selected = False End Sub Public Sub New(ByVal value As String, ByVal text As String, ByVal selected As Boolean) Me.Value = value Me.Text = text Me.Selected = selected End Sub End Class ' Public Class DropDowns Public Function Hauler() As List(Of DropDown) Dim _dropDown As List(Of DropDown) = _ New List(Of DropDown) From { _ New DropDown With {.Value = "9 Point", .Text = "9 Point"}, _ New DropDown With {.Value = "R. A.", .Text = "R. A."}, _ New DropDown With {.Value = "A. B.", .Text = "A. B."}, _ New DropDown With {.Value = "B. C.", .Text = "B. C."}, _ New DropDown With {.Value = "Beck", .Text = "Beck"}} Return _dropDown End Function End ClassEnd Namespace