I have an issue on filtering(combobox) and sorting on radgrid, even page is not too slow on first time, Please see my code and advise
here is my grid
<telerik:RadGrid ID="RadGrid1" Width="100%"
AllowMultiRowSelection="true" AllowFilteringByColumn="true"
AutoGenerateColumns="false" CellSpacing="0"
ClientSettings-Scrolling-ScrollHeight="40%"
ClientSettings-Scrolling-AllowScroll="true" EnableLinqExpressions="false"
ClientSettings-Scrolling-UseStaticHeaders="true"
AllowSorting="True" runat="server">
<GroupingSettings CaseSensitive="false" />
<MasterTableView TableLayout="Fixed" DataKeyNames="KEYID" ClientDataKeyNames="KEYID" >
<Columns>
<telerik:GridClientSelectColumn UniqueName="ClientSelectColumn" HeaderStyle-Width="3%" ItemStyle-Width="3%" />
<telerik:GridNumericColumn Aggregate="Count" DataField="KEYID" HeaderText="KEYID" SortExpression="KEYID"
UniqueName="KEYID" />
<telerik:GridBoundColumn HeaderText="Employees" DataField="Name" UniqueName="Name" ShowFilterIcon="false"
HeaderStyle-Width="13%" ItemStyle-Width="13%" SortExpression="Name" AllowFiltering="true"
AutoPostBackOnFilter="true" FilterControlWidth="80" />
<telerik:GridBoundColumn HeaderText="Pay Period" DataField="Description" UniqueName="Description" ShowFilterIcon="false"
SortExpression="Description" HeaderStyle-Width="13%" ItemStyle-Width="13%">
<FilterTemplate>
<telerik:RadComboBox ID="RadComboBoxPP" CausesValidation="false" DataSourceID="SqlDataSourcePP" DataTextField="Code" Width="100"
DataValueField="Code" Height="100px" AppendDataBoundItems="true" OnClientSelectedIndexChanged="SelectedIndexChanged"
SelectedValue='<%# TryCast(Container, GridItem).OwnerTableView.GetColumn("Description").CurrentFilterValue %>'
runat="server">
<Items>
<telerik:RadComboBoxItem Text="All" />
</Items>
</telerik:RadComboBox>
<telerik:RadScriptBlock ID="RadScriptBlock1" runat="server">
<script type="text/javascript">
function SelectedIndexChanged(sender,args) {
var tableView=$find("<%# TryCast(Container, GridItem).OwnerTableView.ClientID %>");
sender.value= args.get_item().get_value();
tableView.filter(
"Description",args.get_item().get_value(),"EqualTo");
}
</script>
</telerik:RadScriptBlock>
</FilterTemplate>
</telerik:GridBoundColumn>
<telerik:GridBoundColumn HeaderText="Department" HeaderStyle-Width="18%" ItemStyle-Width="18%" DataField="Department" UniqueName="Department" ShowFilterIcon="false"
SortExpression="Department" >
<FilterTemplate>
<telerik:RadComboBox ID="RadComboBoxDep" CausesValidation="false" DataSourceID="SqlDataSourceDepartment" DataTextField="Department" width="150"
DataValueField="Department" Height="100px" AppendDataBoundItems="true" OnClientSelectedIndexChanged="SelectedIndexChanged2"
SelectedValue='<%# TryCast(Container, GridItem).OwnerTableView.GetColumn("Department").CurrentFilterValue %>'
runat="server">
<Items>
<telerik:RadComboBoxItem Text="All" />
</Items>
</telerik:RadComboBox>
<telerik:RadScriptBlock ID="RadScriptBlock2" runat="server">
<script type="text/javascript">
function SelectedIndexChanged2(sender,args) {
var tableView=$find("<%# TryCast(Container, GridItem).OwnerTableView.ClientID %>");
sender.value= args.get_item().get_value();
tableView.filter(
"Department",args.get_item().get_value(),"EqualTo");
}
</script>
</telerik:RadScriptBlock>
</FilterTemplate>
</telerik:GridBoundColumn>
<telerik:GridDateTimeColumn ReadOnly="true" DataField="Paydate" HeaderText="Pay Date" DataFormatString="{0:d}" HeaderStyle-Width="13%" ItemStyle-Width="13%" DataType="System.DateTime" UniqueName="PayDate" AllowFiltering="true" SortExpression="PayDate" FilterControlWidth="90"> </telerik:GridDateTimeColumn>
<telerik:GridBoundColumn AllowFiltering="false" HeaderText="Start Date" HeaderStyle-Width="10%" ItemStyle-Width="10%" DataFormatString="{0:d}" DataField="PayDateFrom" UniqueName="PayDateFrom" DataType="System.DateTime" ShowFilterIcon="false"
SortExpression="PayDateFrom" />
<telerik:GridBoundColumn HeaderText="End Date" DataField="Paydateto" HeaderStyle-Width="10%" ItemStyle-Width="10%" DataFormatString="{0:d}" UniqueName="Paydateto" DataType="System.DateTime" ShowFilterIcon="false" AllowFiltering="false"
SortExpression="Paydateto" />
<telerik:GridBoundColumn HeaderText="Hire/Rehire" HeaderStyle-Width="10%" ItemStyle-Width="10%" DataField="EMPDOH" UniqueName="EMPDOH" DataFormatString="{0:d}" DataType="System.DateTime" ShowFilterIcon="false" AllowFiltering="false"
SortExpression="EMPDOH" />
<telerik:GridBoundColumn HeaderStyle-Width="2%" ItemStyle-Width="1%" DataField="hdismass" UniqueName="hdismass" HeaderText="hdismass" AllowFiltering="false"
/>
<telerik:GridBoundColumn HeaderStyle-Width="2%" HeaderText="hds" ItemStyle-Width="1%" DataField="hds" UniqueName="hds" AllowFiltering="false"
/>
</Columns>
</MasterTableView>
<ClientSettings AllowColumnsReorder="true" ReorderColumnsOnClient="true">
<Selecting AllowRowSelect="true" />
<Resizing EnableRealTimeResize="True" ResizeGridOnColumnResize="false" AllowColumnResize="true">
</Resizing>
<ClientEvents OnRowSelecting="rowselecting" />
</ClientSettings>
</telerik:RadGrid>
</td>
</tr>
</table>
</div>
<asp:SqlDataSource runat="server" ID="SqlDataSourceGrid"></asp:SqlDataSource>
<asp:SqlDataSource ID="SqlDataSourcePP" runat="server"></asp:SqlDataSource>
<asp:SqlDataSource ID="SqlDataSourceUsers" runat="server"></asp:SqlDataSource>
<asp:SqlDataSource ID="SqlDataSourceDepartment" runat="server"></asp:SqlDataSource>
and here is the codebehind function
Protected
Sub BindGrid2()
If Not IsPostBack Then
SqlDataSourceUsers.ConnectionString = ConfigurationManager.AppSettings.Item(
"ConnectString")
SqlDataSourceUsers.SelectCommand =
"select PrimaryKey, UserID From Security_Users Where PrimaryKey <> 1"
SqlDataSourceUsers.SelectCommandType = SqlDataSourceCommandType.Text
End If
SqlDataSourcePP.ConnectionString = ConfigurationManager.AppSettings.Item(
"ConnectString")
SqlDataSourcePP.SelectCommand =
"Select distinct Code From CT_Payperiods"
SqlDataSourcePP.SelectCommandType = SqlDataSourceCommandType.Text
SqlDataSourceDepartment.ConnectionString = ConfigurationManager.AppSettings.Item(
"ConnectString")
SqlDataSourceDepartment.SelectCommand =
"select DISTINCT Description as Department from CT_Departments WHERE GROUPID >= 0 "
SqlDataSourceDepartment.SelectCommandType = SqlDataSourceCommandType.Text
If isSelIndex = False Then BindFilters()
SqlDataSourceGrid.ConnectionString = ConfigurationManager.AppSettings.Item(
"ConnectString")
SqlDataSourceGrid.SelectCommand =
"Pr_GetPayEmployee"
SqlDataSourceGrid.SelectCommandType = SqlDataSourceCommandType.StoredProcedure
SqlDataSourceGrid.SelectParameters.Clear()
If radioGD.Items(1).Selected = True Then
SqlDataSourceGrid.SelectParameters.Add(
"mGrpKey", cmbGroup.Items(cmbGroup.SelectedIndex).Value)
Else
SqlDataSourceGrid.SelectParameters.Add(
"mGrpKey", -1)
End If
SqlDataSourceGrid.SelectParameters.Add(
"mDeptKey", -1)
SqlDataSourceGrid.SelectParameters.Add(
"mEmpKey ", -1)
'SqlDataSourceGrid.SelectParameters.Add("PayDate", "")
SqlDataSourceGrid.SelectParameters.Add(
"bRequired", 0)
SqlDataSourceGrid.SelectParameters.Add(
"PayPeriod", -1)
SqlDataSourceGrid.SelectParameters.Add(
"PRKEY", -1)
RadGrid1.DataSourceID =
"SqlDataSourceGrid"
End Sub