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>