Hi All,
I have RadGrid with datas which works fine.
I added a new button for delete.
While deleting I get a java script error.
Microsoft JScript runtime error: Sys.WebForms.PageRequestManagerServerErrorException: Unable to cast object of type 'Telerik.Web.UI.GridCommandItem' to type 'Telerik.Web.UI.GridEditableItem'.
aspx
Here is the .cs page
Is there any option to solve this.
Have even attached the screen shot.
Thanking You
-Anto
I have RadGrid with datas which works fine.
I added a new button for delete.
While deleting I get a java script error.
Microsoft JScript runtime error: Sys.WebForms.PageRequestManagerServerErrorException: Unable to cast object of type 'Telerik.Web.UI.GridCommandItem' to type 'Telerik.Web.UI.GridEditableItem'.
aspx
<%@ Page Language="C#" AutoEventWireup="True" CodeBehind="Qualification.aspx.cs" Inherits="Products.iSmart.Qualification" %><%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %><!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 runat="server"> <title>Qualification</title> <style type="text/css"> .GridPager_ImpetusBlue .radslider { float: left; margin: 7px 100px 0 5px; padding-bottom: 5px; } .sliderPagerLabel_ImpetusBlue { /*float:right;*/ line-height: 32px; padding-top: 8px; margin-top: 8px; } tr.SelectedRow_ImpetusBlue td { background-color: #FF99FF; } </style> <%--<link rel="stylesheet" type="text/css" href="../Common/includes/style.css"></link>--%> <link href="../ImpetusBlue/Grid.ImpetusBlue.css" rel="stylesheet" type="text/css"> </link> <link href="../ImpetusBlue/Menu.ImpetusBlue.css" rel="stylesheet" type="text/css"> </link> <link href="../ImpetusBlue/Slider.ImpetusBlue.css" rel="stylesheet" type="text/css"> </link> <telerik:RadScriptBlock runat="server" ID="RadScriptBlock1"> <script type="text/javascript"> function RTBQualificationclientButtonClicked(sender, args) { if (args.get_item().get_text() == "Close") { GetRadWindow().Close(); } if (document.getElementById("txtrgQualificationRowIndex").value != "-1") { if (args.get_item().get_text() == "Delete") { //radalert('', null, 100, "Error"); radconfirm("Are You Sure, You Want To Delete this Qualification?", ConfirmReasonForDeletionFunction, 280, 100, null, 'Message'); } } else { return false; } } function rgQualification_RowSelect(sender, eventArgs) { var rowindex = eventArgs.get_itemIndexHierarchical(); document.getElementById("<%=txtrgQualificationRowIndex.ClientID%>").value = eventArgs.get_itemIndexHierarchical(); //alert(rowindex); } function RadContextMenuQualification_ItemClientClick(sender, args) { document.getElementById("<%=txtMenuMode.ClientID%>").value = args.get_item().get_text(); if (args.get_item().get_text() == "Delete") { args.set_cancel(true); lastClickedItem = args.get_item(); radconfirm("Are You Sure, You Want To Delete this Qualification?", ConfirmReasonForDeletionFunction, 280, 100, null, 'Message'); } var menu = $find("<%=RadContextMenuQualification.ClientID %>"); menu.hide(); } function rgQualification_RowContextMenu(sender, eventArgs) { document.getElementById("rgQualificationRowIndex").value = eventArgs.get_itemIndexHierarchical(); var menu = $find("<%=RadContextMenuQualification.ClientID %>"); menu.show(eventArgs.get_domEvent()); } lastClickedItem = null; var clickCalledAfterRadconfirm = false; function ConfirmReasonForDeletionFunction(args) { var Index = $get("<%=txtrgQualificationRowIndex.ClientID%>"); if (args) { radprompt('Enter Reason ', ConfirmPromptReasonForDeletionFunction, 330, 160, null, 'Reason', ''); return false; } else clickCalledAfterRadconfirm = false; Index.value = -1; lastClickedItem = null; } function ConfirmPromptReasonForDeletionFunction(args) { if (args != null) { if (args.trim()) { clickCalledAfterRadconfirm = true; document.getElementById("<%=txtReason.ClientID%>").value = args; document.getElementById("<%=btnQualificationDelete.ClientID%>").click(); return true; } else if (args.trim() != null) { clickCalledAfterRadconfirm = false; radalert('Error: Enter Reason', null, 100, "Error"); } lastClickedItem = null; } } </script> </telerik:RadScriptBlock></head><body> <form id="form1" runat="server" method="post"> <asp:ScriptManager ID="scptMgr" runat="server"></asp:ScriptManager> <telerik:RadAjaxLoadingPanel runat="server" ID="LoadingPanel1" IsSticky="true" Style="margin-top: 100px; margin-left: 400px; position: absolute; z-index: 100" Transparency="30" HorizontalAlign="Center" MinDisplayTime="500" BackColor="#E0E0E0"> <asp:Image runat="server" ID="LoadingImage1" ImageUrl="~/iSmart/images/Loading.gif" AlternateText="Loading..." /> </telerik:RadAjaxLoadingPanel> <telerik:RadAjaxManager ID="RadAjaxManager1" runat="server" DefaultLoadingPanelID="LoadingPanel1"> <AjaxSettings> <telerik:AjaxSetting AjaxControlID="rgQualification"> <UpdatedControls> <telerik:AjaxUpdatedControl ControlID="rgQualification" /> <telerik:AjaxUpdatedControl ControlID="rwmMessageBox" /> </UpdatedControls> </telerik:AjaxSetting> <telerik:AjaxSetting AjaxControlID="RadContextMenuQualification"> <UpdatedControls> <telerik:AjaxUpdatedControl ControlID="rgQualification" /> </UpdatedControls> </telerik:AjaxSetting> <telerik:AjaxSetting AjaxControlID="btnQualificationDelete"> <UpdatedControls> <telerik:AjaxUpdatedControl ControlID="rgQualification" /> <telerik:AjaxUpdatedControl ControlID="txtrgQualificationRowIndex" /> </UpdatedControls> </telerik:AjaxSetting> <telerik:AjaxSetting AjaxControlID="RTBQualification"> <UpdatedControls> <telerik:AjaxUpdatedControl ControlID="rgQualification" /> <telerik:AjaxUpdatedControl ControlID="txtrgQualificationRowIndex" /> </UpdatedControls> </telerik:AjaxSetting> </AjaxSettings> </telerik:RadAjaxManager> <table border="0" cellpadding="0" cellspacing="0" width="100%"> <tbody> <tr> <td> <table width="100%" cellpadding="5px"> <tr> <td> <telerik:RadGrid ID="rgQualification" runat="server" AutoGenerateColumns="false" AllowSorting="true" AllowPaging="true" Skin="ImpetusBlue" AllowFilteringByColumn="true" Width="650px" Height="350px" PageSize="5" EnableEmbeddedSkins="false" ImagesPath="~/ImpetusBlue/Grid/" OnNeedDataSource="rgQualification_NeedDataSource" OnItemCommand="rgQualification_ItemCommand" OnUpdateCommand="rgQualification_UpdateCommand" OnInsertCommand="rgQualification_InsertCommand" OnInit="rgQualification_Init"> <ClientSettings> <ClientEvents OnRowContextMenu="rgQualification_RowContextMenu" OnRowSelected="rgQualification_RowSelect" /> <Scrolling AllowScroll="true" UseStaticHeaders="true" SaveScrollPosition="true" /> <Selecting AllowRowSelect="true" /> </ClientSettings> <PagerStyle Mode="Slider" AlwaysVisible="true" /> <GroupingSettings CaseSensitive="false" /> <MasterTableView AutoGenerateColumns="false" EditMode="EditForms" CommandItemDisplay="Bottom" AllowAutomaticInserts="true" AllowAutomaticDeletes="true" DataKeyNames="QualificationID" > <CommandItemTemplate> <div> <table width="103%" border="0" cellpadding="0" cellspacing="0" style="margin-top: -2px; margin-left: -4px; margin-bottom: -3px;"> <tr> <telerik:RadToolBar runat="server" ID="RTBQualification" Skin="Office2007" Width="100%" OnButtonClick="RTBQualification_ButtonClick" OnClientButtonClicked="RTBQualificationclientButtonClicked"> <%----%> <Items> <telerik:RadToolBarButton Text="Add" Font-Size="9" ForeColor="#00156E" CommandName="InitInsert" ImagePosition="Left" ImageUrl="images/neww1.gif"> </telerik:RadToolBarButton> <telerik:RadToolBarButton Text="Edit" Font-Size="9" ForeColor="#00156E" CommandName="Edit" ImagePosition="Left" ImageUrl="images/penedit.png"> </telerik:RadToolBarButton> <telerik:RadToolBarButton Text="Delete" Font-Size="9" ForeColor="#00156E" ImagePosition="Left" CommandName="Delete" ImageUrl="images/delneeewww.gif"> </telerik:RadToolBarButton> <telerik:RadToolBarButton Text="Close" Font-Size="9" ForeColor="#00156E" ImagePosition="Left" ImageUrl="images/closeeeeeee.gif"> </telerik:RadToolBarButton> <telerik:RadToolBarButton Text="" Font-Size="9" Width="170px" Enabled="false" ForeColor="#00156E"> </telerik:RadToolBarButton> </Items> </telerik:RadToolBar> </tr> </table> </div> </CommandItemTemplate> <Columns> <telerik:GridBoundColumn UniqueName="QualificationID" DataField="QualificationID" HeaderText="QualificationID" Visible="false" ReadOnly="true"></telerik:GridBoundColumn> <telerik:GridTemplateColumn UniqueName="Name" DataField="Name" HeaderText="QualificationName" HeaderStyle-Width="45%" ItemStyle-Width="45%" SortExpression="Qualification Name"> <ItemTemplate> <asp:Label ID="LblName" Text='<%#Eval("QualificationName")%>' runat="server"></asp:Label> </ItemTemplate> <EditItemTemplate> <telerik:RadTextBox ID="txtName" TextMode="SingleLine" MaxLength="5" EnableEmbeddedSkins="false" Text='<%#Bind("QualificationName")%>' runat="server" ToolTip="Maximum Character Allowed is 5"> </telerik:RadTextBox><asp:Label ID="Label1" runat="server" ForeColor="Red" Text="*"></asp:Label> <asp:RequiredFieldValidator ID="RequiredFieldValidatorName" runat="server" Display="Dynamic" ErrorMessage="Name Cannot Be Empty" ControlToValidate="txtName"></asp:RequiredFieldValidator> <asp:Label ID="Msg" runat="server" ForeColor="Red"></asp:Label> <asp:RegularExpressionValidator ID="RegularExpressionValidatorName" runat="server" Display="Dynamic" ControlToValidate="txtName" ValidationExpression="^[a-zA-Z]+$" ErrorMessage="Special Characters not Allowed"></asp:RegularExpressionValidator> <telerik:RadTextBox runat="server" EnableEmbeddedSkins="false" ID="txtQualificationID" Text='<%# Eval("QualificationID") %>' Style="display: none;" Visible="false"> </telerik:RadTextBox> </EditItemTemplate> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn UniqueName="Category" DataField="Category" HeaderText="Category" SortExpression="QualificationCategory" HeaderStyle-Width="45%" ItemStyle-Width="45%"> <ItemTemplate> <asp:Label ID="LblCategory" Text='<%#Eval("Category")%>' runat="server"></asp:Label> </ItemTemplate> <EditItemTemplate> <telerik:RadTextBox ID="txtCategory" TextMode="SingleLine" MaxLength="100" Text='<%#Bind("Category")%>' runat="server" EnableEmbeddedSkins="false" ToolTip="Maximum Character Allowed is 100"> </telerik:RadTextBox><asp:Label ID="Label2" runat="server" ForeColor="Red" Text="*"></asp:Label> <asp:RequiredFieldValidator ID="rfvCategory" runat="server" ErrorMessage="Category Cannot Be Empty" ControlToValidate="txtCategory" Display="Dynamic"></asp:RequiredFieldValidator> </EditItemTemplate> </telerik:GridTemplateColumn> </Columns> <EditFormSettings> <EditColumn ButtonType="ImageButton"> </EditColumn> </EditFormSettings> <NoRecordsTemplate> <center> No Records Found!!!</center> </NoRecordsTemplate> </MasterTableView> </telerik:RadGrid> <asp:Label ID="lblMsg" runat="server" ForeColor="White" Text="Impetus" Width="100%" style="text-align:right;"></asp:Label> </td> </tr> </table> <telerik:RadWindowManager VisibleTitlebar="true" VisibleStatusbar="false" RestrictionZoneID="RestrictionZone" Width="644px" Height="98%" Modal="true" ID="rwmMessageBox" Skin="Office2007" runat="server" DestroyOnClose="true" Behaviors="Close, Move, Resize"> </telerik:RadWindowManager> <telerik:RadContextMenu ID="RadContextMenuQualification" runat="server" Skin="Office2007" OnItemClick="RadContextMenuQualification_ItemClick" OnClientItemClicking="RadContextMenuQualification_ItemClientClick"> <Items> <telerik:RadMenuItem Text="Add" Value="Add" /> <telerik:RadMenuItem Text="Edit" Value="Edit" /> <telerik:RadMenuItem Text="Delete" Value="Delete" /> </Items> </telerik:RadContextMenu> <asp:Button ID="btnQualificationDelete" runat="server" OnClick="btnQualificationDelete_Click" Style="display: none;" /> <input type="hidden" id="rgQualificationRowIndex" name="rgQualificationRowIndex" /> <asp:TextBox ID="txtReason" runat="server" Text="0" Style="display: none;"></asp:TextBox> <asp:TextBox ID="txtMenuMode" runat="server" Text="0" Style="display: none;"></asp:TextBox> <asp:TextBox ID="txtrgQualificationRowIndex" runat="server" Text="-1" Style="display: none;"></asp:TextBox> </td> </tr> </tbody> </table> </form></body></html>Here is the .cs page
using System;using System.Collections;using System.Configuration;using System.Data;using System.Linq;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.HtmlControls;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Xml.Linq;using Telerik.Web.UI;using iSmart.BLayer;using Products.iSmart.BLayer;// Created By :Kabijoy// Date :05/10/2010// Email ID :kabijoy.e@impetusconsulting.net namespace Products.iSmart{ public partial class Qualification : System.Web.UI.Page { blAction objQualification = new blAction(); //Create the object, Used to call BusinessLayer Function. static String QualificationID, CompanyID, UserID; protected void Page_Load(object sender, EventArgs e) { CompanyID = "11"; UserID = "55"; } // To listOut the All Qualification Data Based On Company protected void rgQualification_NeedDataSource(object source, GridNeedDataSourceEventArgs e) { rgQualification.DataSource = objQualification.getQualification(CompanyID); } protected void rgQualification_Init(object sender, EventArgs e) { GridFilterMenu menu = rgQualification.FilterMenu; int i = 0; while (i < menu.Items.Count) { if (menu.Items[i].Text == "NoFilter" || menu.Items[i].Text == "Contains" || menu.Items[i].Text == "DoesNotContain" || menu.Items[i].Text == "StartsWith" || menu.Items[i].Text == "EndsWith") { i++; } else { menu.Items.RemoveAt(i); } } } //To delete the selected row from grid and Table protected void btnQualificationDelete_Click(object sender, EventArgs e) { String DeleteMessage = String.Empty; int rgQualificationRowIndex; rgQualificationRowIndex = Convert.ToInt32(txtrgQualificationRowIndex.Text); QualificationID = rgQualification.MasterTableView.Items[rgQualificationRowIndex]["QualificationID"].Text; //Name = ((Label)rgQualification.MasterTableView.Items[rgQualificationRowIndex]["Name"].FindControl("LblName")).Text; String Reason = txtReason.Text; try { Int32 IDD = objQualification.DeleteQualification( QualificationID, Reason, UserID, CompanyID ); if (IDD == -1) { DeleteMessage = "Some Internal Problem on Deleting the Data. Try Again later"; UDFDisplayMessage(DeleteMessage); } else if(IDD==1) { DeleteMessage = "Data Deleted Successfully"; rgQualification.Rebind(); UDFDisplayMessage(DeleteMessage); } } catch (Exception ex) { DeleteMessage = "Warning : " + ex.Message; UDFDisplayMessage(DeleteMessage); } Session["Message"] = DeleteMessage; txtrgQualificationRowIndex.Text = "-1"; } protected void RTBQualification_ButtonClick(object sender, RadToolBarEventArgs e) { String PageClicked = e.Item.Text; String Message = String.Empty; int rgQualificationRowIndex; switch (e.Item.Text) { case "Add": rgQualification.MasterTableView.IsItemInserted = true; rgQualification.MasterTableView.EditFormSettings.CaptionDataField = ""; rgQualification.MasterTableView.EditFormSettings.CaptionFormatString = "Add New Qualification"; rgQualification.Rebind(); break; case "Edit": if (txtrgQualificationRowIndex.Text != "-1") { rgQualificationRowIndex = Convert.ToInt32(txtrgQualificationRowIndex.Text); rgQualification.MasterTableView.Items[rgQualificationRowIndex].Edit = true; rgQualification.MasterTableView.EditFormSettings.CaptionDataField = "Name"; rgQualification.MasterTableView.EditFormSettings.CaptionFormatString = "Edit Qualification : {0}"; rgQualification.Rebind(); txtrgQualificationRowIndex.Text = "-1"; } else { Message = "Select a row to Proceed"; UDFDisplayMessage(Message); } break; case "Delete": //if (txtrgQualificationRowIndex.Text != "-1") //{ //} //else //{ // Message = "Select a row to Proceed"; // UDFDisplayMessage(Message); //} break; case "Close": break; } } protected void RadContextMenuQualification_ItemClick(object sender, RadMenuEventArgs e) { int rgQualificationRowIndex; rgQualificationRowIndex = Convert.ToInt32(txtrgQualificationRowIndex.Text); switch (e.Item.Value) { case "Edit": rgQualification.MasterTableView.Items[rgQualificationRowIndex].Edit = true; rgQualification.MasterTableView.EditFormSettings.CaptionDataField = ""; rgQualification.MasterTableView.EditFormSettings.CaptionFormatString = "Edit Qualification : "; rgQualification.Rebind(); break; case "Add": rgQualification.MasterTableView.IsItemInserted = true; rgQualification.MasterTableView.EditFormSettings.CaptionDataField = ""; rgQualification.MasterTableView.EditFormSettings.CaptionFormatString = "Add New Qualification"; rgQualification.Rebind(); break; case "Delete": break; } } protected void rgQualification_ItemCommand(object source, GridCommandEventArgs e) { if (e.CommandName == "Edit") { rgQualification.MasterTableView.EditFormSettings.CaptionDataField = ""; rgQualification.MasterTableView.EditFormSettings.CaptionFormatString = "Edit Qualification : "; } else if (e.CommandName == "InitInsert") { rgQualification.MasterTableView.EditFormSettings.CaptionDataField = ""; rgQualification.MasterTableView.EditFormSettings.CaptionFormatString = "Add New Qualification"; } } //protected void rgQualification_ItemDataBound(object sender, Telerik.Web.UI.GridItemEventArgs e) //{ // if (e.Item is GridEditableItem && e.Item.IsInEditMode) // { // GridEditableItem item = (GridEditableItem)e.Item; // } //} protected void saveQualification(String QualificationID, String Name, String Category,String UserId,String CompanyID, GridCommandEventArgs e) { String Message = String.Empty; try { Int32 ID = objQualification.saveQualification( QualificationID, Name.Trim(), Category.Trim(), UserId, CompanyID ); if (ID == -1) { Message = "Some Internal Problem on Saving the Data. Try Again later"; UDFDisplayMessage(Message); } else if (ID == -2) { Message = "Error : Data Duplication. Data Already Exists"; UDFDisplayMessage(Message); } else if (ID == 1) { e.Canceled = true; e.Item.Edit = false; Message = "Data Saved Successfully "; UDFDisplayMessage(Message); } else if (ID == 2) { e.Canceled = true; e.Item.Edit = false; Message = "Data Updated Successfully "; rgQualification.Rebind(); UDFDisplayMessage(Message); } } catch (Exception ex) { Message = "Warning : " + ex.Message; e.Canceled = true; UDFDisplayMessage(Message); } txtrgQualificationRowIndex.Text = "-1"; } protected void openRadWindow(RadWindowManager rwmTemp, string FileName, String Title, Int32 Width, Int32 Height) { objQualification.openRadWindow(rwmTemp, FileName, Title, Width, Height); } protected void rgQualification_InsertCommand(object source, GridCommandEventArgs e) { GridEditFormInsertItem insertedItem = (GridEditFormInsertItem)e.Item; Hashtable newValues = new Hashtable(); e.Item.OwnerTableView.ExtractValuesFromItem(newValues, insertedItem); saveQualification( "0", ((RadTextBox)insertedItem.FindControl("txtName")).Text, ((RadTextBox)insertedItem.FindControl("txtCategory")).Text, UserID, CompanyID, e ); } protected void rgQualification_UpdateCommand(object source, GridCommandEventArgs e) { GridEditFormItem updatedItem = (GridEditFormItem)e.Item; Hashtable newValues = new Hashtable(); e.Item.OwnerTableView.ExtractValuesFromItem(newValues, updatedItem); saveQualification( ((RadTextBox)updatedItem.FindControl("txtQualificationID")).Text, ((RadTextBox)updatedItem.FindControl("txtName")).Text, ((RadTextBox)updatedItem.FindControl("txtCategory")).Text, UserID, CompanyID, e ); } private void UDFDisplayMessage(string text) { rgQualification.Controls.Add(new LiteralControl(string.Format("<span style='font-weight: bold; color: red;'>{0}</span>", text))); } }}Is there any option to solve this.
Have even attached the screen shot.
Thanking You
-Anto