$find(
"<%=RadAjaxManager.GetCurrent( this.Page ).ClientID %>").ajaxRequest(requestArg);
But in other 3 user controls I don't have any user controls again like Notes.ascx. There I am able to access Rad Ajax Manager with this code. Even in Grid.ascx.cs I am able to access this with the following code.
RadAjaxManager
ajaxManager = RadAjaxManager.GetCurrent(Page);
But if I write the same client side script in Notes.ascx, it works fine for me.
I am not understanding what is the problem behind this.
Please help me on acheiving this as this one is little bit urgent for me.
Thanks in advance.
Hari.
| <%@ Page Language="VB" AutoEventWireup="false" CodeFile="TestA.aspx.vb" Inherits="TEST_VB_TestA" %> |
| <!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> |
| <telerik:RadScriptManager ID="RadScriptManager1" Runat="server"> |
| </telerik:RadScriptManager> |
| <telerik:RadAjaxLoadingPanel runat="server" ID="RadAjaxLoadingPanel1" /> |
| <telerik:RadAjaxManager ID="RadAjaxManager1" runat="server"> |
| </telerik:RadAjaxManager> |
| <telerik:RadScheduler runat="server" ID="RadScheduler1" |
| TimeZoneOffset="03:00:00" Height="500px" Width="750px" DataSourceID="ObjectDataSource1" |
| DataKeyField="NewsID" DataSubjectField="Title" |
| DataStartField="PublishDate" DataEndField="NewsType_DeadLine" |
| OnClientFormCreated="schedulerFormCreated" |
| DataDescriptionField="Subtitle"> |
| <AdvancedForm Modal="true" /> |
| <ResourceTypes> |
| <telerik:ResourceType KeyField="NewsID" Name="Media" TextField="MediaID" ForeignKeyField="MediaID" |
| DataSourceID="ObjectDataSource1" /> |
| <telerik:ResourceType KeyField="NewsID" Name="User" TextField="Username" ForeignKeyField="Username" |
| DataSourceID="ObjectDataSource1" /> |
| </ResourceTypes> |
| <TimeSlotContextMenuSettings EnableDefault="true" /> |
| <AppointmentContextMenuSettings EnableDefault="true" /> |
| </telerik:RadScheduler> |
| <asp:ObjectDataSource ID="ObjectDataSource1" runat="server" |
| DataObjectTypeName="NewsSpace.News" InsertMethod="insert" |
| SelectMethod="NewsSchedulerList" TypeName="NewsSpace.News_DB" |
| UpdateMethod="Update"> |
| <SelectParameters> |
| <asp:Parameter Name="NewsID" Type="Int32" /> |
| </SelectParameters> |
| </asp:ObjectDataSource> |
| </div> |
| </form> |
| <script type="text/javascript"> |
| //<![CDATA[ |
| function schedulerFormCreated(scheduler, eventArgs) { |
| var $ = $telerik.$; |
| var schedulerElement = scheduler.get_element(); |
| var formElement = $("div.rsAdvancedEdit", schedulerElement); |
| if (formElement.length == 1) { |
| // Initialize the client-side object for the advanced form |
| var advancedTemplate = new window.SchedulerAdvancedTemplate(schedulerElement, formElement); |
| advancedTemplate.initialize(); |
| } |
| } |
| //]]> |
| </script> |
| </body> |
| </html> |
Hi,
My name is Sunggoo and I found these weird behaviors while using GridDropDownColumns to implement RadGrid edit form with cascading dropdowns.
Like many others, I followed Grid / Accessing Cells and Rows demo and other forum threads, and was successful to get really close to my goal.
However, I discovered the following erroneous behaviors which I think are some kinds of bug:
C# code-behind:
| public partial class WSSummary : System.Web.UI.Page |
| { |
| public static String ConnString = "Data Source=CHINABERRY\\SQLEXPRESS;Initial Catalog=TestGridview;Integrated Security=True"; |
| public static DataTable GetRelatedRecords(string query) |
| { |
| SqlConnection conn = new SqlConnection(ConnString); |
| SqlDataAdapter adapter = new SqlDataAdapter(); |
| adapter.SelectCommand = new SqlCommand(query, conn); |
| DataTable myDataTable = new DataTable(); |
| conn.Open(); |
| try |
| { |
| adapter.Fill(myDataTable); |
| } |
| finally |
| { |
| conn.Close(); |
| } |
| return myDataTable; |
| } |
| protected void RadGrid1_NeedDataSource(object source, Telerik.Web.UI.GridNeedDataSourceEventArgs e) |
| { |
| SqlConnection conn = new SqlConnection(ConnString); |
| SqlDataAdapter adapter = new SqlDataAdapter(); |
| adapter.SelectCommand = new SqlCommand("SELECT Date, Client, CostElementName, ServicePackage, Description, BillingNumber, Hours, Rate, Status FROM [WSItem]", conn); |
| DataSet myDataSet = new DataSet(); |
| conn.Open(); |
| try |
| { |
| adapter.Fill(myDataSet, "WSItems"); |
| adapter.SelectCommand = new SqlCommand("SELECT Client FROM [Client]", conn); |
| adapter.Fill(myDataSet, "Clients"); |
| adapter.SelectCommand = new SqlCommand("SELECT CostElementName FROM [CostElementName]", conn); |
| adapter.Fill(myDataSet, "CostElementNames"); |
| adapter.SelectCommand = new SqlCommand("SELECT ServicePackage FROM [tblServicePackage]", conn); |
| adapter.Fill(myDataSet, "ServicePackages"); |
| } |
| finally |
| { |
| conn.Close(); |
| } |
| RadGrid1.DataSource = myDataSet; |
| } |
| protected void RadGrid1_ItemDataBound(object sender, Telerik.Web.UI.GridItemEventArgs e) |
| { |
| if (e.Item is GridEditableItem && e.Item.IsInEditMode) |
| { |
| // reference the edited grid item |
| GridEditableItem editedItem = e.Item as GridEditableItem; |
| GridEditManager editMan = editedItem.EditManager; |
| RadComboBox clientColumn = editedItem["ClientColumn"].Controls[0] as RadComboBox; |
| // reference the column editor which holds the CostElementName dropdown list instance in the edit form |
| GridDropDownColumnEditor costElementNameEditor = editMan.GetColumnEditor("CostElementNameColumn") as GridDropDownColumnEditor; |
| DataTable tempCENtable = GetRelatedRecords("SELECT CostElementName FROM [CostElementName] WHERE Client = '" + clientColumn.SelectedValue + "'"); |
| costElementNameEditor.DataSource = tempCENtable; |
| costElementNameEditor.DataBind(); |
| // reference the column editor which holds the CostElementName dropdown list instance in the edit form |
| GridDropDownColumnEditor servicePackageEditor = editMan.GetColumnEditor("ServicePackageColumn") as GridDropDownColumnEditor; |
| DataTable tempSPtable = GetRelatedRecords("SELECT ServicePackage FROM [tblServicePackage] WHERE Client = '" + clientColumn.SelectedValue + "'"); |
| servicePackageEditor.DataSource = tempSPtable; |
| servicePackageEditor.DataBind(); |
| } |
| } |
| protected void RadGrid1_ItemCreated(object sender, GridItemEventArgs e) |
| { |
| if (e.Item is GridEditableItem && e.Item.IsInEditMode) |
| { |
| GridEditableItem editedItem = e.Item as GridEditableItem; |
| RadComboBox clientColumn = editedItem["ClientColumn"].Controls[0] as RadComboBox; |
| // add SelectedIndexChanged event handler to Client dropdown list column |
| clientColumn.AutoPostBack = true; |
| clientColumn.SelectedIndexChanged += new RadComboBoxSelectedIndexChangedEventHandler(ClientComboBoxControl_SelectedIndexChanged); |
| } |
| } |
| protected void ClientComboBoxControl_SelectedIndexChanged(object sender, RadComboBoxSelectedIndexChangedEventArgs e) |
| { |
| //first reference the edited grid item through the NamingContainer attribute |
| GridEditableItem editedItem = (sender as RadComboBox).NamingContainer as GridEditableItem; |
| //the dropdown list will be the first control in the Controls collection of the corresponding cell |
| //for custom edit forms (WebUserControl/FormTemplate) you can find the column editor with the FindControl(controlId) method |
| RadComboBox ddlCENList = editedItem["CostElementNameColumn"].Controls[0] as RadComboBox; |
| // change the data source for ContactTitle with custom code here |
| DataTable tempCENtable = GetRelatedRecords("SELECT CostElementName FROM [CostElementName] WHERE Client = '" + (editedItem["ClientColumn"].Controls[0] as RadComboBox).SelectedValue + "'"); |
| ddlCENList.DataSource = tempCENtable; |
| ddlCENList.DataBind(); |
| //the dropdown list will be the first control in the Controls collection of the corresponding cell |
| //for custom edit forms (WebUserControl/FormTemplate) you can find the column editor with the FindControl(controlId) method |
| RadComboBox ddlSPList = editedItem["ServicePackageColumn"].Controls[0] as RadComboBox; |
| // change the data source for ContactTitle with custom code here |
| DataTable tempSPtable = GetRelatedRecords("SELECT ServicePackage FROM [tblServicePackage] WHERE Client = '" + (editedItem["ClientColumn"].Controls[0] as RadComboBox).SelectedValue + "'"); |
| ddlSPList.DataSource = tempSPtable; |
| ddlSPList.DataBind(); |
| } |
| } |
.aspx:
| <telerik:RadScriptManager ID="RadScriptManager1" runat="server"> |
| </telerik:RadScriptManager> |
| <telerik:RadCodeBlock ID="RadCodeBlock1" runat="server"> |
| <script type="text/javascript"> |
| var hasChanges, inputs, dropdowns, editedRow; |
| function RowClick(sender, eventArgs) { |
| } |
| function RowDblClick(sender, eventArgs) { |
| sender.get_masterTableView().editItem(eventArgs.get_itemIndexHierarchical()); |
| } |
| function GridCommand(sender, eventArgs) { |
| if (eventArgs.get_commandName() != "Edit") { |
| editedRow = null; |
| } |
| } |
| function GridCreated(sender, eventArgs) { |
| var gridElement = sender.get_element(); |
| var elementsToUse = []; |
| inputs = gridElement.getElementsByTagName("input"); |
| for (var i = 0; i < inputs.length; i++) { |
| var lowerType = inputs[i].type.toLowerCase(); |
| if (lowerType == "hidden" || lowerType == "button") { |
| continue; |
| } |
| Array.add(elementsToUse, inputs[i]); |
| inputs[i].onchange = TrackChanges; |
| } |
| dropdowns = gridElement.getElementsByTagName("select"); |
| for (var i = 0; i < dropdowns.length; i++) { |
| dropdowns[i].onchange = TrackChanges; |
| } |
| //setTimeout(function() { if (elementsToUse[0]) elementsToUse[0].focus(); }, 100); |
| } |
| function TrackChanges(e) { |
| hasChanges = true; |
| } |
| </script> |
| </telerik:RadCodeBlock> |
| <telerik:RadGrid ID="RadGrid1" runat="server" AllowPaging="True" Skin="Windows7" |
| OnNeedDataSource="RadGrid1_NeedDataSource" |
| OnItemCreated="RadGrid1_ItemCreated" |
| OnItemDataBound="RadGrid1_ItemDataBound" |
| GridLines="None"> |
| <PagerStyle Mode="NextPrevAndNumeric" /> |
| <MasterTableView ShowHeadersWhenNoRecords="true" |
| GridLines="Vertical" AutoGenerateColumns="false" EditMode="InPlace"> |
| <Columns> |
| <telerik:GridDateTimeColumn UniqueName="DateColumn" PickerType="DatePicker" |
| HeaderText="Date" DataField="Date"> |
| <ItemStyle Width="100px" /> |
| </telerik:GridDateTimeColumn> |
| <telerik:GridDropDownColumn UniqueName="ClientColumn" DataField="Client" |
| ListTextField="Client" ListValueField="Client" ListDataMember="Clients" |
| HeaderText="Client" DropDownControlType="RadComboBox"> |
| <ItemStyle Width="150px" /> |
| </telerik:GridDropDownColumn> |
| <telerik:GridDropDownColumn UniqueName="CostElementNameColumn" DataField="CostElementName" |
| ListTextField="CostElementName" ListValueField="CostElementName" ListDataMember="CostElementNames" |
| HeaderText="Cost Element Name" DropDownControlType="RadComboBox"> |
| <ItemStyle Width="200px" /> |
| </telerik:GridDropDownColumn> |
| <telerik:GridDropDownColumn UniqueName="ServicePackageColumn" DataField="ServicePackage" |
| ListTextField="ServicePackage" ListValueField="ServicePackage" ListDataMember="ServicePackages" |
| HeaderText="Service or Package" DropDownControlType="RadComboBox"> |
| <ItemStyle Width="200px" /> |
| </telerik:GridDropDownColumn> |
| <telerik:GridBoundColumn UniqueName="DescriptionColumn" DataField="Description" |
| HeaderText="Description" AllowSorting="false"> |
| <ItemStyle Width="200px" Height="3em" /> |
| </telerik:GridBoundColumn> |
| <telerik:GridBoundColumn UniqueName="BillingNumberColumn" DataField="BillingNumber" |
| HeaderText="Billing #"> |
| <ItemStyle Width="100px" /> |
| </telerik:GridBoundColumn> |
| <telerik:GridBoundColumn UniqueName="HoursColumn" DataField="Hours" |
| HeaderText="Hours"> |
| <ItemStyle Width="50px" /> |
| </telerik:GridBoundColumn> |
| <telerik:GridBoundColumn UniqueName="RateColumn" DataField="Rate" |
| HeaderText="Rate"> |
| <ItemStyle Width="50px" /> |
| </telerik:GridBoundColumn> |
| <telerik:GridBoundColumn UniqueName="Status" DataField="Status" |
| HeaderText="Status" SortExpression="Status"> |
| </telerik:GridBoundColumn> |
| </Columns> |
| </MasterTableView> |
| <ClientSettings EnableRowHoverStyle="true" AllowColumnsReorder="True" |
| ReorderColumnsOnClient="True"> |
| <Selecting AllowRowSelect="True" /> |
| <ClientEvents OnRowClick="RowClick" OnRowDblClick="RowDblClick" |
| OnGridCreated="GridCreated" OnCommand="GridCommand" /> |
| </ClientSettings> |
| </telerik:RadGrid> |
| <telerik:RadAjaxManager runat="server"> |
| <ajaxsettings> |
| <telerik:AjaxSetting AjaxControlID="RadGrid1"> |
| <UpdatedControls> |
| <telerik:AjaxUpdatedControl ControlID="RadGrid1" /> |
| </UpdatedControls> |
| </telerik:AjaxSetting> |
| </ajaxsettings> |
| </telerik:RadAjaxManager> |
Here are some additional information:
I spent many hours to error# 2 and 3. Because my code isn’t much different from the demo, I though it might be caused by some unknown bugs. Please take a look at my code and help me out.
Thank you,
Sunggoo.