<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
"XHTML 1.0 Transitional" for the
DOCTYPE.
<
telerik:RadTabStrip
ID
=
"rtsMainTabs"
runat
=
"server"
Width
=
"990px"
CssClass
=
"crmMainTabs"
Skin
=
"Simple"
SelectedIndex
=
"2"
>
<
Tabs
>
<
telerik:RadTab
NavigateUrl
=
"home.aspx"
Text
=
"Front Page"
Target
=
"IFContent"
>
</
telerik:RadTab
>
<
telerik:RadTab
NavigateUrl
=
"Page2.aspx"
Text
=
"Page2"
Target
=
"IFContent"
>
</
telerik:RadTab
>
<
telerik:RadTab
NavigateUrl
=
"Page3.aspx"
Text
=
"Page3"
Target
=
"IFContent"
>
</
telerik:RadTab
>
<
telerik:RadTab
NavigateUrl
=
"Page4.aspx"
Text
=
"Page4"
Target
=
"IFContent"
>
</
telerik:RadTab
>
</
Tabs
>
</
telerik:RadTabStrip
>
<
iframe
name
=
"IFContent"
id
=
"IFContent"
style
=
"width:990px; height:720px;"
src
=
"home.aspx"
></
iframe
>
Hi,
I have used Telerik products specially Radgrid, RadAjaxManager and RadWindow in my project extensively. After everything has started working fine, we are trying to fine tune the project to make it faster as client has started complaining about the speed of certain pages or context menu items.
For a RadGrid, Ihave used RadMenu as contextmenu. For the context menus for which there is no postback, everything works fine. For the context menu with postback, when the server side code is run to check some values in the database and open a new page in a RadWindow depending on the values, it takes a very long time. The reason I figured is – even for an Ajax call, the data submitted to server is the whole grid data and then bring back the whole data. My initial ajaxsetting as shown below was bringing back the whole data and reloading the grid, so it was taking even longer. Now I am not reloading the grid, so it is working a little faster.
<telerik:AjaxSetting AjaxControlID="RadMenu1">
<UpdatedControls>
<telerik:AjaxUpdatedControl ControlID="Label1"/>
</UpdatedControls>
</telerik:AjaxSetting>
Previuosly my ajax setting was
<telerik:AjaxSetting AjaxControlID="RadMenu1">
<UpdatedControls>
<telerik:AjaxUpdatedControl ControlID="RadGrid1"/>
</UpdatedControls>
</telerik:AjaxSetting>
When RadGRid1 was the updated control for RadMenu, page was even slower.
Can you please suggest what can I do to improve the performance?
Thanks
Hi,
I am loading Telerik grid based on search parameters, and when data is loading from database,i would like to display Hourglass rotating, but i could not able to get it. since i am getting default loading rotating only.
ex:-
<
telerik:RadAjaxLoadingPanel ID="RadAjaxLoadingPanel1" runat="server" BackColor="AliceBlue"
Transparency="30">
<img alt="Loading..." src='<%= RadAjaxLoadingPanel.GetWebResourceUrl(Page, "Telerik.Web.UI.Skins.Default.Ajax.loading.gif") %>'
style="border: 0;" />
</telerik:RadAjaxLoadingPanel>
do let me know, if i need to change to loading.gif to some other file? if so please let me know the path.
Thanks in advance.
In Insert mode ,if I use "Item 1" in first row. In second row I want to remove "Item 1" from combobox and show "Item 2" and "Item 3" in combobox. How can I do this?
<
telerik:GridImageColumn
AlternateText
=
"Thumbnail"
DataImageUrlFields
=
"FilePath, ThumbnailName"
DataImageUrlFormatString
=
"{0}/{1}"
DataType
=
"System.String"
FooterText
=
"ImageColumn footer"
HeaderText
=
""
ImageAlign
=
"Middle"
UniqueName
=
"vehicleimage"
>
<
HeaderStyle
Width
=
"75px"
/>
</
telerik:GridImageColumn
>
Protected
Sub
rg_VehicleImages_ItemCreated(
ByVal
sender
As
Object
,
ByVal
e
As
GridItemEventArgs)
Handles
rg_VehicleImages.ItemCreated
If
TypeOf
e.Item
Is
GridDataItem
Then
Dim
item
As
GridDataItem =
DirectCast
(e.Item, GridDataItem)
Dim
deleteBtn
As
LinkButton =
DirectCast
(item.FindControl(
"AutoGeneratedDeleteButton"
), LinkButton)
deleteBtn.Attributes.Add(
"onclick"
,
"return confirm('Are you sure you want to delete this image?')"
)
End
If
If
TypeOf
e.Item
Is
GridDataItem
Then
Dim
item
As
GridDataItem =
DirectCast
(e.Item, GridDataItem)
Dim
cell
As
TableCell = item(
"vehicleimage"
)
Dim
img
As
Image = TryCast(cell.Controls(0), Image)
img.Attributes.Add(
"onclick"
,
"rowclick"
)
End
If
End
Sub
Ben
<telerik:RadAjaxManager ID="RadAjaxManager1" runat="server">
<AjaxSettings>
<telerik:AjaxSetting AjaxControlID="RadGridOpenItems">
<UpdatedControls>
<telerik:AjaxUpdatedControl ControlID="RadGridOpenItems" />
</UpdatedControls>
</telerik:AjaxSetting>
<telerik:AjaxSetting AjaxControlID="RadGridOpenItems">
<UpdatedControls>
<telerik:AjaxUpdatedControl ControlID="RadGridOpenItems" />
</UpdatedControls>
</telerik:AjaxSetting>
</AjaxSettings>
</telerik:RadAjaxManager>
<telerik:RadComboBox ID="RadComboBox1" runat="server"
MarkFirstMatch="True" EnableLoadOnDemand="True" AutoPostBack="true" OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged">
<telerik:RadCodeBlock ID="RadCodeBlock1" runat="server">
<script type="text/javascript">
function RowDblClick(sender, eventArgs) {
sender.get_masterTableView().editItem(eventArgs.get_itemIndexHierarchical());
}
</script>
</telerik:RadCodeBlock>
<telerik:RadGrid ID="RadGridOpenItems" runat="server" DataSourceID="SqlDataSourcePwOpenItems" AllowMultiRowEdit="true"
ShowStatusBar="True" GridLines="None" OnItemUpdated="RadGrid1_ItemUpdated" OnItemInserted="RadGrid1_ItemInserted"
AllowFilteringByColumn="false" AllowPaging="True" OnItemDeleted="RadGrid1_ItemDeleted"
AllowSorting="True" Skin="Vista" AllowAutomaticDeletes="True"
AllowAutomaticInserts="True" AllowAutomaticUpdates="True"
AutoGenerateColumns="False" ShowGroupPanel="false" >
<ClientSettings Scrolling-AllowScroll="True" AllowColumnsReorder="True" ReorderColumnsOnClient="True">
<Selecting AllowRowSelect="True" />
<Scrolling AllowScroll="True" UseStaticHeaders="True" FrozenColumnsCount="0" SaveScrollPosition="True" />
<Resizing AllowColumnResize="True" />
<ClientEvents OnRowDblClick="RowDblClick" />
<Selecting AllowRowSelect="True"></Selecting>
<Scrolling AllowScroll="True" UseStaticHeaders="True"></Scrolling>
<Resizing AllowColumnResize="True"></Resizing>
</ClientSettings>
<MasterTableView DataSourceID="SqlDataSourcePwOpenItems"
AllowPaging="True" AllowSorting="True" CommandItemDisplay="Top"
EditMode="InPlace" DataKeyNames="PWOPENITEMS_ID" AllowAutomaticDeletes="true">
<CommandItemSettings ExportToPdfText="Export to Pdf"></CommandItemSettings>
<RowIndicatorColumn>
<HeaderStyle Width="20px"></HeaderStyle>
</RowIndicatorColumn>
<ExpandCollapseColumn>
<HeaderStyle Width="20px"></HeaderStyle>
</ExpandCollapseColumn>
<%--Gridview Columns--%>
<Columns>
<telerik:GridEditCommandColumn UniqueName="EditCommandColumn"
ButtonType="imagebutton" >
<HeaderStyle Width="35px" />
</telerik:GridEditCommandColumn>
<telerik:GridClientDeleteColumn ConfirmText="Are you sure you want to delete the selected row?"
HeaderStyle-Width="35px" ButtonType="ImageButton" UniqueName="column1" >
<HeaderStyle Width="35px"></HeaderStyle>
</telerik:GridClientDeleteColumn>
<telerik:GridTemplateColumn DataField="OPCODE" HeaderText="OPCODE"
SortExpression="OPCODE" UniqueName="OPCODE" AllowFiltering="false">
<HeaderStyle Width="120px" />
<%--Convert to uppercase--%>
<EditItemTemplate>
<asp:TextBox id="txtOpcode" runat="server" Text='<%# Bind("OPCODE") %>' MaxLength="3"
Onkeyup="javascript:this.value = this.value.toUpperCase();"></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label id="lblOpcode" runat="server" Text='<%# Eval("OPCODE") %>'></asp:Label>
</ItemTemplate>
</telerik:GridTemplateColumn>
.
.column2, column3,...
.
</Columns>
<EditFormSettings FormCaptionStyle-HorizontalAlign="Center">
<EditColumn UniqueName="EditCommandColumn1"></EditColumn>
</EditFormSettings>
</MasterTableView>
</telerik:RadGrid>
asp:sqlDataSource here
Update command, select command, insert command, delete command is here
update, insert, and delete parameters here.
Code behind
namespace Ames5.Schedule
{
public partial class PWOPENITEMS : System.Web.UI.Page
{
public string GetConnectionString()
{
//sets the connection string from web config file "ConnString"
return System.Configuration.ConfigurationManager.ConnectionStrings["AMES5DB_TESTConnectionString"].ConnectionString;
}
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
SqlConnection conn = new SqlConnection(GetConnectionString());
SqlCommand cmd = new SqlCommand("Select DISTINCT OPCODE,FLEET,SUBFLEET from PWOPENITEMS", conn);//query to get the distinct values.
SqlDataAdapter sda = new SqlDataAdapter();
sda.SelectCommand = cmd;
DataSet ds = new DataSet();
sda.Fill(ds, "tbl_data"); //nameing the table getting stored in DataSet as "tbl_data"
string str1, str2, str3, str4;
ArrayList MyDisplayList = new ArrayList();
ArrayList MyValueList = new ArrayList();
if (ds.Tables["tbl_data"].Rows.Count != 0)
{
MyDisplayList.Add("ALL");
foreach (DataRow myRow in ds.Tables["tbl_data"].Rows)
{
str1 = myRow["OPCODE"].ToString();
str2 = myRow["FLEET"].ToString();
str3 = myRow["SUBFLEET"].ToString();
str4 = str1 + " " + str2 + " " + str3; //Concatinating three strings with space in between.
MyDisplayList.Add(str4);
}
RadComboBox1.DataSource = MyDisplayList;
RadComboBox1.DataBind();
}
else
{
Response.Write("No Data");
}
}
(RadAjaxManager.GetCurrent(this.Page) as RadAjaxManager).ResponseScripts.Add(string.Format("window['gridId'] = '{0}';", RadGridOpenItems.ClientID));
}
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
SqlConnection con = new SqlConnection(GetConnectionString());
if (RadComboBox1.SelectedItem.Text == "ALL")
{
string str = "SELECT * FROM PWOPENITEMS";
SqlDataSourcePwOpenItems.SelectCommand=str;
RadGridOpenItems.DataBind();
}
else
{
string fullString = RadComboBox1.SelectedValue.ToString();
string firstString = fullString.Substring(0, 3); //Extracting substring
string middleString = fullString.Substring(3, 7); //Extracting substring
string lastString = fullString.Substring(11, 1);
string st = "SELECT * FROM PWOPENITEMS WHERE OPCODE = '" + firstString + "' AND FLEET = '" + middleString + "' AND SUBFLEET = '" + lastString + "'";
SqlDataSourcePwOpenItems.SelectCommand = st;
RadGridOpenItems.Rebind();
}
}
protected void RadGrid1_ItemUpdated(object source, Telerik.Web.UI.GridUpdatedEventArgs e)
{
GridEditableItem item = (GridEditableItem)e.Item;
String id = item.GetDataKeyValue("PWOPENITEMS_ID").ToString();
if (e.Exception != null)
{
e.KeepInEditMode = true;
e.ExceptionHandled = true;
SetMessage("Product with ID " + id + " cannot be updated. Reason: " + e.Exception.Message);
}
else
{
SetMessage("Product with ID " + id + " is updated!");
}
}
protected void RadGrid1_ItemInserted(object source, GridInsertedEventArgs e)
{
if (e.Exception != null)
{
e.ExceptionHandled = true;
SetMessage("Item cannot be inserted. Reason: " + e.Exception.Message);
}
else
{
SetMessage("New item is inserted!");
}
}
protected void RadGrid1_ItemDeleted(object source, GridDeletedEventArgs e)
{
GridDataItem dataItem = (GridDataItem)e.Item;
String id = dataItem.GetDataKeyValue("PWOPENITEMS_ID").ToString();
if (e.Exception != null)
{
e.ExceptionHandled = true;
SetMessage("Product with ID " + id + " cannot be deleted. Reason: " + e.Exception.Message);
}
else
{
SetMessage("Product with ID " + id + " is deleted!");
}
}
private void DisplayMessage(string text)
{
RadGridOpenItems.Controls.Add(new LiteralControl(string.Format("<span style='color:red'>{0}</span>", text)));
}
private void SetMessage(string message)
{
gridMessage = message;
}
private string gridMessage = null;
protected void RadGrid1_DataBound(object sender, EventArgs e)
{
if (!string.IsNullOrEmpty(gridMessage))
{
DisplayMessage(gridMessage);
}
}
}
}
<
telerik:RadGrid
ID
=
"RadGrid1"
runat
=
"server"
AllowFilteringByColumn
=
"true"
AutoGenerateColumns
=
"false"
GridLines
=
"None"
Width
=
"95%"
AllowPaging
=
"true"
PageSize
=
"25"
OnNeedDataSource
=
"RadGrid1_NeedDataSource"
>
<
MasterTableView
Width
=
"100%"
DataKeyNames
=
"City"
AllowFilteringByColumn
=
"true"
FilterItemStyle-Width
=
"100%"
>
<
Columns
>
<
telerik:GridBoundColumn
DataField
=
"City"
HeaderText
=
"City"
UniqueName
=
"City"
>
<
FilterTemplate
>
<
telerik:RadComboBox
ID
=
"RadSearchComboBox"
Height
=
"60px"
AppendDataBoundItems
=
"true"
AutoPostBack
=
"true"
Text
=
""
runat
=
"server"
OnSelectedIndexChanged
=
"FilterCombo_SelectedIndexChanged"
OnClientSelectedIndexChanged
=
"SelectedIndexChanged"
ShowDropDownOnTextboxClick
=
"true"
>
<
Items
>
<
telerik:RadComboBoxItem
Text
=
"All"
Value
=
"All"
Style
=
"display: none;"
/>
<
telerik:RadComboBoxItem
Text
=
"Chennai"
Value
=
"Chennai"
/>
<
telerik:RadComboBoxItem
Text
=
"Hyderabad"
Value
=
"Hyderabad"
/>
</
Items
>
<
HeaderTemplate
>
<
telerik:RadMenu
runat
=
"server"
ID
=
"radM"
Flow
=
"Vertical"
>
<
Items
>
<
telerik:RadMenuItem
Text
=
"Select Filter"
>
<
Items
>
<
telerik:RadMenuItem
Text
=
"Starts With"
Value
=
"SW"
></
telerik:RadMenuItem
>
<
telerik:RadMenuItem
Text
=
"Ends With"
Value
=
"EW"
></
telerik:RadMenuItem
>
</
Items
>
</
telerik:RadMenuItem
>
</
Items
>
</
telerik:RadMenu
>
</
HeaderTemplate
>
<
ItemTemplate
>
<
asp:CheckBox
runat
=
"server"
ID
=
"CheckBox"
onclick
=
"stopPropagation(event);"
Text
=
""
>
</
asp:CheckBox
>
<
asp:Label
ID
=
"lbl"
runat
=
"server"
Text='<%# DataBinder.Eval(Container, "Text") %>'></
asp:Label
>
</
ItemTemplate
>
</
telerik:RadComboBox
>
</
FilterTemplate
>
</
telerik:GridBoundColumn
>
</
Columns
>
</
MasterTableView
>
<
PagerStyle
Mode
=
"NextPrevAndNumeric"
/>
</
telerik:RadGrid
>