or
<telerik:RadToolBar ID="RadToolBar1" runat="server" Skin="Vista" style="display:block; float:none" Width="100%"> |
<Items> |
<telerik:RadToolBarButton runat="server" ImageUrl="~/Style/Images/alarm1.gif" CommandName="cmd1" /> |
<telerik:RadToolBarButton runat="server" ImageUrl="~/Style/Images/alarm2.gif" CommandName="cmd2"/> |
</Items> |
</telerik:RadToolBar> |
<%@ Page Theme="TSC" Language="C#" AutoEventWireup="true" CodeFile="Test2.aspx.cs" Inherits="rq2DN_Test2" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<
html
xmlns
=
"http://www.w3.org/1999/xhtml"
>
<
head
id
=
"Head1"
runat
=
"server"
>
<
title
>Test</
title
>
</
head
>
<
body
>
<
form
id
=
"form1"
runat
=
"server"
>
<
telerik:RadScriptManager
ID
=
"RadScriptManager1"
runat
=
"server"
>
</
telerik:RadScriptManager
>
<
telerik:RadFormDecorator
ID
=
"RadFormDecorator1"
runat
=
"server"
/>
<
telerik:RadAjaxLoadingPanel
ID
=
"RadAjaxLoadingPanel1"
Runat
=
"server"
>
</
telerik:RadAjaxLoadingPanel
>
<
asp:HiddenField
ID
=
"hfCatalogueId"
runat
=
"server"
/>
<
asp:HiddenField
ID
=
"hfTemporary"
runat
=
"server"
/>
<
asp:Panel
ID
=
"ListViewPanel"
runat
=
"server"
>
<
telerik:RadListView
ID
=
"RadListView1"
runat
=
"server"
DataKeyNames
=
"StockNumber"
DataSourceID
=
"objCatalogue"
onitemcreated
=
"RadListView1_ItemCreated"
>
<
LayoutTemplate
>
<
div
class
=
"RadListView RadListView_Default"
>
<
div
id
=
"itemPlaceholder"
runat
=
"server"
>
</
div
>
</
div
>
</
LayoutTemplate
>
<
ItemTemplate
>
<
table
>
<
tr
>
<
td
>
<
asp:Label
ID
=
"Label2"
runat
=
"server"
Text='<%# Bind("StockNumber") %>'></
asp:Label
>
</
td
>
<
td
rowspan
=
"2"
valign
=
"top"
>
<
asp:Panel
ID
=
"Panel1"
runat
=
"server"
>
<
asp:Label
ID
=
"Label1"
runat
=
"server"
Text='<%# Bind("StockNumber") %>'></
asp:Label
>
<
asp:Button
ID
=
"Button1"
runat
=
"server"
Text
=
"Button"
onclick
=
"Button1_Click"
/>
</
asp:Panel
>
</
td
>
</
tr
>
<
tr
>
<
td
>
<
asp:Label
ID
=
"Label3"
runat
=
"server"
Text='<%# Bind("StockNumber") %>'></
asp:Label
>
</
td
>
</
tr
>
</
table
>
</
ItemTemplate
>
</
telerik:RadListView
>
</
asp:Panel
>
<
asp:ObjectDataSource
ID
=
"objCatalogue"
runat
=
"server"
OldValuesParameterFormatString
=
"original_{0}"
SelectMethod
=
"getCatalogueWithShoppingInfo"
TypeName
=
"com.srb.rq2.CatalogueDAO"
EnablePaging
=
"True"
SelectCountMethod
=
"getRowCount"
>
<
SelectParameters
>
<
asp:ControlParameter
ControlID
=
"hfCatalogueId"
PropertyName
=
"Value"
Name
=
"catalogueId"
Type
=
"Int32"
/>
<
asp:ControlParameter
ControlID
=
"hfTemporary"
PropertyName
=
"Value"
Name
=
"searchText"
Type
=
"String"
/>
</
SelectParameters
>
</
asp:ObjectDataSource
>
<
telerik:RadAjaxManager
ID
=
"RadAjaxManager1"
runat
=
"server"
></
telerik:RadAjaxManager
>
<
telerik:RadAjaxManagerProxy
ID
=
"RadAjaxManagerProxy1"
runat
=
"server"
>
</
telerik:RadAjaxManagerProxy
>
</
form
>
</
body
>
</
html
>
using
System;
using
System.Collections.Generic;
using
System.Linq;
using
System.Web;
using
System.Web.UI;
using
System.Web.UI.WebControls;
using
System.Threading;
using
Telerik.Web.UI;
using
com.srb.rq2;
using
com.srb.core.util;
public
partial
class
rq2DN_Test2 : System.Web.UI.Page
{
protected
void
Page_Load(
object
sender, EventArgs e)
{
if
(!IsPostBack)
{
hfCatalogueId.Value =
"18"
;
hfTemporary.Value =
""
;
}
}
protected
void
Button1_Click(
object
sender, EventArgs e)
{
Thread.Sleep(2000);
}
protected
void
RadListView1_ItemCreated(
object
sender, Telerik.Web.UI.RadListViewItemEventArgs e)
{
if
(e.Item
is
RadListViewDataItem)
{
RadListViewDataItem item = (RadListViewDataItem)e.Item;
Button button = (Button)e.Item.FindControl(
"Button1"
);
Panel panel = (Panel)e.Item.FindControl(
"Panel1"
);
RadAjaxManagerProxy1.AjaxSettings.AddAjaxSetting(button, panel, RadAjaxLoadingPanel1);
}
}
}
<
telerik:RadGrid
ID
=
"RadGrid1"
runat
=
"server"
AllowFilteringByColumn
=
"True"
AllowPaging
=
"True"
AllowSorting
=
"True"
GridLines
=
"None"
OnNeedDataSource
=
"RadGrid1_NeedDataSource"
AutoGenerateColumns
=
"true"
AutoGenerateEditColumn
=
"true"
>
</
telerik:RadGrid
>
and this in my code behind :
protected
void
RadGrid1_NeedDataSource(
object
sender, GridNeedDataSourceEventArgs e)
{
LinqDataSource ds =
new
LinqDataSource();
ds.Selecting += (sd, evt) => evt.Result =
new
UserManager().GetAllUsers();
RadGrid1.DataSource = ds;
}
SELECT
COUNT
(*)
AS
[value]
FROM
[dbo].[Portal_Users]
AS
[t0]
SELECT
[t1].[Id], [t1].[FirstName], [t1].[LastName], [t1].[Email], [t1].[LastLogin], [t1].[Created]
FROM
(
SELECT
ROW_NUMBER() OVER (
ORDER
BY
[t0].[Id], [t0].[FirstName], [t0].[LastName], [t0].[Email], [t0].[LastLogin], [t0].[Created])
AS
[ROW_NUMBER], [t0].[Id], [t0].[FirstName], [t0].[LastName], [t0].[Email], [t0].[LastLogin], [t0].[Created]
FROM
[dbo].[Portal_Users]
AS
[t0]
)
AS
[t1]
WHERE
[t1].[ROW_NUMBER]
BETWEEN
@p0 + 1
AND
@p0 + @p1
ORDER
BY
[t1].[ROW_NUMBER]
SELECT
[t0].[Id], [t0].[FirstName], [t0].[LastName], [t0].[Email], [t0].[LastLogin], [t0].[Created]
FROM
[dbo].[Portal_Users]
AS
[t0]
The first 2 queries are as expected but the 3rd one queries the whole users table. As this gives horrible performance with a large dataset I started digging around. Then I discovered that this :
<
telerik:RadGrid
ID
=
"RadGrid1"
runat
=
"server"
AllowFilteringByColumn
=
"True"
AllowPaging
=
"True"
AllowSorting
=
"True"
GridLines
=
"None"
DataSourceID
=
"linqDS"
AutoGenerateColumns
=
"true"
AutoGenerateEditColumn
=
"true"
>
</
telerik:RadGrid
>
<
asp:LinqDataSource
ID
=
"linqDS"
OnSelecting
=
"selecting"
runat
=
"server"
/>
protected
void
selecting(
object
sender, LinqDataSourceSelectEventArgs e)
{
e.Result =
new
UserManager().GetAllUsers();
}
.MasterTableView.EditFormSettings.UserControlName =
<
telerik:RadTextBox
ID
=
"txt_Comment"
runat
=
"server"
TextMode
=
"MultiLine"
Width
=
"50%"
Height
=
"50px"
onKeyUp
=
"txt_CharacterCount.value=this.value.length"
MaxLength
=
"255"
>
</
telerik:RadTextBox
>
<
telerik:RadTextBox
ID
=
"txt_CharacterCount"
ClientIDMode
=
"Static"
runat
=
"server"
ReadOnly
=
"true"
Width
=
"40px"
>
</
telerik:RadTextBox
>