protected void RadGridWorkRequestAsset_ItemDataBound(object sender, GridItemEventArgs e) { //Other code here if (e.Item is GridDataItem) { var editItem = ((GridDataItem)e.Item); var deleteButton = (LinkButton)editItem["DeleteColumn"].Controls[0]; if (deleteButton != null) { deleteButton.Enabled = false; } } //Other code here }<telerik:GridClientDeleteColumn ConfirmText="Delete this record?" ButtonType="LinkButton" UniqueName="DeleteColumn" ConfirmTitle="Delete" ConfirmDialogType="Classic" CommandName="Delete"> </telerik:GridClientDeleteColumn><telerik:RadXmlHttpPanel ID="mainRadXmlHttpPanel" runat="server" OnServiceRequest="main_ServiceRequest" RenderMode="Block" LoadingPanelID="RadAjaxLoadingPanel1" EnableClientScriptEvaluation="true" Width="117%"><telerik:RadComboBox ID="mainShipCb" runat="server" Width="150px"> </telerik:RadComboBox> </telerik:RadXmlHttpPanel>protected void main_ServiceRequest(object sender, RadXmlHttpPanelEventArgs e) { mainShipCb.SelectedValue = "Some Value"; }I have successfully added a radeditor control inside a server compositecontrol:
protected override void CreateChildControls() { Controls.Clear(); _txtBox = new TextBox(); _txtBox.ID = "txtEdit"; _edrBox = new RadEditor(); _edrBox.ID = "edrEdit"; _txtBox.TextChanged += new EventHandler(txtBox_TextChanged); _edrBox.ValueChanged += new EventHandler(edrBox_ValueChanged); this.Controls.Add(_txtBox); this.Controls.Add(_edrBox); } But the problem is, when the server control is placed inside a formview and that formview is ajaxified by a radgrid (ie, in a master/detail relationship, clicking a row on the radgrid should refresh the details inside a formview), an Ajax javascript error shows up that a null reference is detected at the time of sys.load????
Attached is the javascript code (from microsoft ajax) showing the error where variable a is NULL.
Before to begin Ajax request (async postback), I execute JavaScript function, which validate and correct values of the form (removes hyphens from telephone number). Call of alert() shows that value of a field has changed. However, to the server transferred not changed value of a field (old value - before correction).
Example: I typed '55-55-55' in field and clicked button. Value of a field changes on '555555', but to the server transferred old value (before correction) - '55-55-55'. I need to transfer the corrected value. How it to make?
<%@ Page Language="C#" AutoEventWireup="true" %> <!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></title> <telerik:RadStyleSheetManager id="RadStyleSheetManager1" runat="server" /> </head> <body> <form id="form1" runat="server"> <telerik:RadScriptManager ID="RadScriptManager1" runat="server"> <Scripts> <asp:ScriptReference Assembly="Telerik.Web.UI" Name="Telerik.Web.UI.Common.Core.js" /> <asp:ScriptReference Assembly="Telerik.Web.UI" Name="Telerik.Web.UI.Common.jQuery.js" /> <asp:ScriptReference Assembly="Telerik.Web.UI" Name="Telerik.Web.UI.Common.jQueryInclude.js" /> </Scripts> </telerik:RadScriptManager> <script type="text/javascript"> function formAdjustBeforeSubmit(sender, args) { var input = document.getElementById("phoneTextBox"); //debugger; var val = input.value.replace(/-/g, ""); input.value = val; // Here we modified value of a field (remove '-' from phone number) alert(input.value); } </script> <telerik:RadAjaxManager ID="RadAjaxManager1" runat="server" EnableAJAX="true" ClientEvents-OnRequestStart="formAdjustBeforeSubmit"> <AjaxSettings> <telerik:AjaxSetting AjaxControlID="Panel1"> <UpdatedControls> <telerik:AjaxUpdatedControl ControlID="Panel1" UpdatePanelHeight="" /> </UpdatedControls> </telerik:AjaxSetting> </AjaxSettings> </telerik:RadAjaxManager> <asp:Panel ID="Panel1" runat="server"> Phone: <asp:TextBox ID="phoneTextBox" runat="server" ClientIDMode="Static" /> <asp:Button ID="Button1" runat="server" Text="Save" style="margin-left:20px;"/> </asp:Panel> </form> </body> </html> I am using 2010.3.1109.40 version of the Telerik.Web.UI.
Please help me out with this.
Thanks,
Steele.
MainPage.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="MainPage.aspx.cs" Inherits="TestTelerikWebApp.MainPage" %> <!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></title> </head> <body> <form id="form1" runat="server"> <telerik:RadScriptManager ID="RadScriptManager1" runat="server"> </telerik:RadScriptManager> <telerik:RadAjaxManager ID="RadAjaxManager1" runat="server"> <AjaxSettings> <telerik:AjaxSetting AjaxControlID="buttLaunch1"> <UpdatedControls> <telerik:AjaxUpdatedControl ControlID="buttLaunch1" /> </UpdatedControls> </telerik:AjaxSetting> <telerik:AjaxSetting AjaxControlID="buttLaunch2"> <UpdatedControls> <telerik:AjaxUpdatedControl ControlID="buttLaunch2" /> </UpdatedControls> </telerik:AjaxSetting> </AjaxSettings> </telerik:RadAjaxManager> <telerik:RadWindowManager ID="RadWindowManager1" runat="server" DestroyOnClose="True"> </telerik:RadWindowManager> <telerik:RadCodeBlock ID="RadCodeBlock1" runat="server"> <script type="text/javascript"> function OpenMyWindow() { var oManager = null; if (typeof (GetRadWindowManager) == 'function') // there is a radwindowmanager in scope, so use it oManager = GetRadWindowManager(); var oWnd = oManager.open('TestPopup.aspx', 'This is a test'); } </script> </telerik:RadCodeBlock> <div> <asp:Button ID="buttLaunch1" runat="server" Text="Launch1" onclick="buttLaunch1_Click" /> <asp:Button ID="buttLaunch2" runat="server" Text="Launch2" onclick="buttLaunch2_Click" /> </div> </form> </body> </html> using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace TestTelerikWebApp { public partial class MainPage : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } protected void buttLaunch1_Click(object sender, EventArgs e) { Session["ErrorInfo"] = "Launch1"; RadAjaxManager1.ResponseScripts.Add("OpenMyWindow();"); } protected void buttLaunch2_Click(object sender, EventArgs e) { Session["ErrorInfo"] = "Launch2"; RadAjaxManager1.ResponseScripts.Add("OpenMyWindow();"); } } } <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="TestPopup.aspx.cs" Inherits="TestTelerikWebApp.TestPopup" %> <!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></title> </head> <body> <form id="form1" runat="server"> <div> I am a popup<br /> <asp:Label ID="lblMessage" runat="server"></asp:Label> </div> </form> </body> </html> using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace TestTelerikWebApp { public partial class TestPopup : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { lblMessage.Text = Session["ErrorInfo"].ToString(); } } }