Hi there,
I have two RadGrids and two buttons.
In Ajax manager i reference RadGrids as they should be updated upon the event from the buttons.
When the page loads, it does not show my radgrids. When I click the buttons it renders data into the radgrids and they show up.
When I remove references between buttons and radgrids from the Ajax manager, everything works as expected at the page load, e.i. the radgrids are showing up with corresponding data.
Though I need Ajax updates to the radgrids on the button click.
I am sure that problem resolution must be very simple.
Below is my code:
The code behind:
I have two RadGrids and two buttons.
In Ajax manager i reference RadGrids as they should be updated upon the event from the buttons.
When the page loads, it does not show my radgrids. When I click the buttons it renders data into the radgrids and they show up.
When I remove references between buttons and radgrids from the Ajax manager, everything works as expected at the page load, e.i. the radgrids are showing up with corresponding data.
Though I need Ajax updates to the radgrids on the button click.
I am sure that problem resolution must be very simple.
Below is my code:
<%@ Page Title="" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="TestPrices.aspx.cs" Inherits="kukulika.Manufacturer.TestPrices" %><asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" runat="server"> <style type="text/css"> .style1 { width: 100%; } .style3 { width: 313px; } .style4 { width: 181px; } .style5 { width: 255px; } </style></asp:Content><asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server"> <telerik:RadScriptManager ID="RadScriptManager1" runat="server"> <Scripts> <asp:ScriptReference Assembly="Telerik.Web.UI" Name="Telerik.Web.UI.Common.Core.js"> </asp:ScriptReference> <asp:ScriptReference Assembly="Telerik.Web.UI" Name="Telerik.Web.UI.Common.jQuery.js"> </asp:ScriptReference> <asp:ScriptReference Assembly="Telerik.Web.UI" Name="Telerik.Web.UI.Common.jQueryInclude.js"> </asp:ScriptReference> </Scripts> </telerik:RadScriptManager> <telerik:RadTabStrip ID="RadTabStrip1" runat="server" SelectedIndex="5" Width="900px"> <Tabs> <telerik:RadTab runat="server" Text="New Quotes" NavigateUrl="~/Manufacturer/ManufacturerMain.aspx"> </telerik:RadTab> <telerik:RadTab runat="server" Text="Active Quotes" Enabled="False"> </telerik:RadTab> <telerik:RadTab runat="server" Text="Confirmed Jobs" Enabled="False"> </telerik:RadTab> <telerik:RadTab runat="server" Text="Profile" NavigateUrl="~/Manufacturer/Profile.aspx"> </telerik:RadTab> <telerik:RadTab runat="server" Text="Pricing" NavigateUrl="~/Manufacturer/Prices.aspx"> </telerik:RadTab> <telerik:RadTab runat="server" Text="Test Projects" NavigateUrl="~/Manufacturer/TestPrices.aspx" Selected="True"> </telerik:RadTab> <telerik:RadTab runat="server" Text="Appliance Specs" Enabled="False"> </telerik:RadTab> </Tabs> </telerik:RadTabStrip> <fieldset style="margin: 0px"> <table class="style1"> <tr> <td class="style5"> <telerik:RadComboBox ID="rcbServiceType" runat="server" DataSourceID="sqlServiceType" DataTextField="ServiceType" DataValueField="ServiceTypeID" Label="Service:"> </telerik:RadComboBox> </td> <td class="style3" rowspan="3"> <telerik:RadGrid ID="rgStats" runat="server" AutoGenerateColumns="False" CellSpacing="0" DataSourceID="sqlStats" GridLines="None" ShowHeader="False" Skin="Sitefinity"> <AlternatingItemStyle BackColor="White" /> <MasterTableView DataSourceID="sqlStats"> <CommandItemSettings ExportToPdfText="Export to PDF"></CommandItemSettings> <RowIndicatorColumn Visible="True" FilterControlAltText="Filter RowIndicator column"> </RowIndicatorColumn> <ExpandCollapseColumn Visible="True" FilterControlAltText="Filter ExpandColumn column"> </ExpandCollapseColumn> <Columns> <telerik:GridBoundColumn DataField="Name" FilterControlAltText="Filter Name column" UniqueName="Name"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="Value" FilterControlAltText="Filter Value column" UniqueName="Value"> </telerik:GridBoundColumn> </Columns> <EditFormSettings> <EditColumn FilterControlAltText="Filter EditCommandColumn column"> </EditColumn> </EditFormSettings> <AlternatingItemStyle BackColor="White" /> </MasterTableView> <FilterMenu EnableImageSprites="False"> <WebServiceSettings> <ODataSettings InitialContainerName=""> </ODataSettings> </WebServiceSettings> </FilterMenu> <HeaderContextMenu CssClass="GridContextMenu GridContextMenu_Default"> <WebServiceSettings> <ODataSettings InitialContainerName=""> </ODataSettings> </WebServiceSettings> </HeaderContextMenu> </telerik:RadGrid> </td> <td class="style4" style="text-align: right"> <telerik:RadButton ID="rbShowPrice" runat="server" OnClick="rbShowPrice_Click" Text="Show Price"> </telerik:RadButton> </td> <td style="text-align: right"> <telerik:RadButton ID="rbSaveProject" runat="server" OnClick="rbSaveProject_Click" Text="Save Project"> </telerik:RadButton> </td> </tr> <tr> <td class="style5"> <telerik:RadNumericTextBox ID="rtbLinerFootage" runat="server" Culture="en-US" Label="Total liner footage:" LabelWidth="" Value="20" Width="150px"> </telerik:RadNumericTextBox> <telerik:RadComboBox ID="rcbUnits" runat="server" DataSourceID="sqlUnits" DataTextField="UnitName" DataValueField="UnitID" Enabled="False" Skin="Sitefinity" Width="50px"> </telerik:RadComboBox> </td> <td class="style4"> </td> <td> </td> </tr> <tr> <td class="style5"> </td> <td class="style4"> </td> <td> </td> </tr> </table> <telerik:RadGrid ID="rgTestProject" runat="server" AutoGenerateColumns="False" OnItemDataBound="rgTestProject_ItemDataBound" CellSpacing="0" DataSourceID="sqlMaterialCategoriesCombined" GridLines="None"> <MasterTableView DataSourceID="sqlMaterialCategoriesCombined"> <CommandItemSettings ExportToPdfText="Export to PDF"></CommandItemSettings> <RowIndicatorColumn Visible="True" FilterControlAltText="Filter RowIndicator column"> <HeaderStyle Width="20px"></HeaderStyle> </RowIndicatorColumn> <ExpandCollapseColumn Visible="True" FilterControlAltText="Filter ExpandColumn column"> <HeaderStyle Width="20px"></HeaderStyle> </ExpandCollapseColumn> <Columns> <telerik:GridBoundColumn DataField="MaterialCategoryID" DataType="System.Int32" FilterControlAltText="Filter MaterialCategoryID column" HeaderText="MaterialCategoryID" ReadOnly="True" SortExpression="MaterialCategoryID" UniqueName="MaterialCategoryID" Visible="False"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="ParentMaterialID" DataType="System.Int32" FilterControlAltText="Filter ParentMaterialID column" HeaderText="ParentMaterialID" ReadOnly="True" SortExpression="ParentMaterialID" UniqueName="ParentMaterialID" Visible="False"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="ID" FilterControlAltText="Filter ID column" HeaderText="ID" UniqueName="ID"> <HeaderStyle Width="30px" /> <ItemStyle Width="30px" /> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="Category" FilterControlAltText="Filter Category column" HeaderText="Category" ReadOnly="True" SortExpression="Category" UniqueName="Category"> </telerik:GridBoundColumn> <telerik:GridTemplateColumn FilterControlAltText="Filter Item column" HeaderText="Item" UniqueName="Item"> <ItemTemplate> <telerik:RadComboBox ID="rcbItem" runat="server" DataTextField="MaterialName" DataValueField="MaterialID" Width="300" Skin="Windows7" AllowCustomText="True" EmptyMessage="Please select an item from the list" OnSelectedIndexChanged="rcbItem_SelectedIndexChanged"> </telerik:RadComboBox> </ItemTemplate> <HeaderStyle Width="300px" /> <ItemStyle Width="300px" /> </telerik:GridTemplateColumn> </Columns> <EditFormSettings> <EditColumn FilterControlAltText="Filter EditCommandColumn column"> </EditColumn> </EditFormSettings> </MasterTableView> <FilterMenu EnableImageSprites="False"> <WebServiceSettings> <ODataSettings InitialContainerName=""> </ODataSettings> </WebServiceSettings> </FilterMenu> <HeaderContextMenu CssClass="GridContextMenu GridContextMenu_Default"> <WebServiceSettings> <ODataSettings InitialContainerName=""> </ODataSettings> </WebServiceSettings> </HeaderContextMenu> </telerik:RadGrid> </fieldset> <asp:SqlDataSource ID="sqlMaterialCategoriesCombined" runat="server" ConnectionString="<%$ ConnectionStrings:KPortal %>" SelectCommand="Exec GetMaterialCategoriesCombined @ServiceTypeID=@ServiceTypeID"> <SelectParameters> <asp:ControlParameter ControlID="rcbServiceType" Name="ServiceTypeID" PropertyName="SelectedValue" /> </SelectParameters> </asp:SqlDataSource> <asp:SqlDataSource ID="sqlServiceType" runat="server" ConnectionString="<%$ ConnectionStrings:KPortal %>" OnSelecting="sqlServiceType_Selecting" SelectCommand="SELECT ServiceType.ServiceTypeID, ServiceType.ServiceType FROM [User] INNER JOIN ManufacturerUser ON [User].UserID = ManufacturerUser.UserID INNER JOIN ManufacturerServiceType INNER JOIN ServiceType ON ManufacturerServiceType.ServiceTypeID = ServiceType.ServiceTypeID ON ManufacturerUser.ManufacturerID = ManufacturerServiceType.ManufacturerID WHERE (ServiceType.ServiceReferenceData = 1) AND (ServiceType.ServiceTypeActive = 1) AND ([User].Login = @LoginID) AND (ManufacturerServiceType.ServiceStatus = 'A')"> <SelectParameters> <asp:Parameter Name="LoginID" /> </SelectParameters> </asp:SqlDataSource> <asp:SqlDataSource ID="sqlUnits" runat="server" ConnectionString="<%$ ConnectionStrings:KPortal %>" OnSelecting="sqlUnits_Selecting" SelectCommand="SELECT Units.UnitID, Units.UnitName FROM ManufacturerUser INNER JOIN Manufacturer ON ManufacturerUser.ManufacturerID = Manufacturer.ManufacturerID INNER JOIN [User] ON ManufacturerUser.UserID = [User].UserID INNER JOIN Units ON Manufacturer.UnitSystem = Units.UnitSystem WHERE (Units.UnitType = 'length') AND ([User].Login = @LoginID) AND (Units.MajorUnit = 1)"> <SelectParameters> <asp:Parameter Name="LoginID" /> </SelectParameters> </asp:SqlDataSource> <telerik:RadNotification ID="rnChangesSaved" runat="server" Width="300" Height="100" Animation="Fade" EnableRoundedCorners="true" EnableShadow="true" Title="Test Project" Text="Your questionary answers have been saved" Style="z-index: 35000" Position="Center"> </telerik:RadNotification> <asp:SqlDataSource ID="sqlStats" runat="server" ConnectionString="<%$ ConnectionStrings:KPortal %>" OnSelecting="sqlStats_Selecting" SelectCommand="Exec GetTestProjectPriceStats @ServiceTypeID = @ServiceTypeID , @LoginID = @LoginID"> <SelectParameters> <asp:ControlParameter ControlID="rcbServiceType" Name="ServiceTypeID" PropertyName="SelectedValue" /> <asp:Parameter Name="LoginID" /> </SelectParameters> </asp:SqlDataSource> <telerik:RadAjaxLoadingPanel ID="RadAjaxLoadingPanel1" runat="server" Skin="Default"> </telerik:RadAjaxLoadingPanel> <telerik:RadAjaxManager runat="server" DefaultLoadingPanelID="RadAjaxLoadingPanel1"> <AjaxSettings> <telerik:AjaxSetting AjaxControlID="rbShowPrice"> <UpdatedControls> <telerik:AjaxUpdatedControl ControlID="rgStats" /> <telerik:AjaxUpdatedControl ControlID="rnChangesSaved" /> </UpdatedControls> </telerik:AjaxSetting> <telerik:AjaxSetting AjaxControlID="rbSaveProject"> <UpdatedControls> <telerik:AjaxUpdatedControl ControlID="rgStats" /> <telerik:AjaxUpdatedControl ControlID="rnChangesSaved" /> </UpdatedControls> </telerik:AjaxSetting> </AjaxSettings> </telerik:RadAjaxManager></asp:Content>The code behind:
using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;using Telerik.Web.UI;using System.Xml;using System.Text;using System.Data.SqlClient;using System.Configuration;namespace kukulika.Manufacturer{ public partial class TestPrices : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } protected void sqlServiceType_Selecting(object sender, SqlDataSourceSelectingEventArgs e) { e.Command.Parameters[0].Value = Page.User.Identity.Name.ToString().ToLower(); } protected void rgTestProject_ItemDataBound(object sender, GridItemEventArgs e) { if (e.Item is GridDataItem) { GridDataItem item = e.Item as GridDataItem; RadComboBox rcbItem = item.FindControl("rcbItem") as RadComboBox; string MaterialCategoryID = item["MaterialCategoryID"].Text.ToString(); string ParentMaterialID = item["ParentMaterialID"].Text.ToString(); rcbItem.EmptyMessage = "Please select " + item["Category"].Text.ToString(); SqlDataSource sqlDS = new SqlDataSource(); sqlDS.ConnectionString = ConfigurationManager.ConnectionStrings["KPortal"].ConnectionString; sqlDS.SelectCommand = "Exec GetManufacturerTestProjectItem @MaterialCategoryID = "+ MaterialCategoryID + ",@ParentMaterialID="+ParentMaterialID+",@LoginID='" + Page.User.Identity.Name.ToString().ToLower() + "'"; rcbItem.DataSource = sqlDS; SqlConnection conn = new SqlConnection(sqlDS.ConnectionString); SqlCommand command = new SqlCommand(sqlDS.SelectCommand, conn); conn.Open(); try { SqlDataReader Questionary = command.ExecuteReader(); while (Questionary.Read()) { if (Questionary["SelectedItem"].ToString() != "0") { rcbItem.SelectedValue = Questionary["SelectedItem"].ToString(); } } } finally { conn.Close(); } rcbItem.DataBind(); } } protected void rcbItem_SelectedIndexChanged(object sender, RadComboBoxSelectedIndexChangedEventArgs e) { } protected void SaveProject() { //Validate Selection bool res = true; foreach (GridDataItem item in rgTestProject.Items) { RadComboBox rcbItem = item.FindControl("rcbItem") as RadComboBox; if (rcbItem.SelectedValue.ToString() == "") { item["Category"].ForeColor = System.Drawing.Color.Red; res = false; } else { item["Category"].ControlStyle.Reset(); } } if (res == false) { rnChangesSaved.Text = "Please select items for your test project"; rnChangesSaved.Show(); return; } //Save Project Details var sb = new StringBuilder(); XmlWriter xw = XmlWriter.Create(sb); xw.WriteStartElement("ManufacturerTestProject"); xw.WriteAttributeString("ServiceTypeID",rcbServiceType.SelectedValue.ToString()); xw.WriteAttributeString("DerrivedMeasurement", rtbLinerFootage.Text.ToString()); xw.WriteAttributeString("UnitID", rcbUnits.SelectedValue.ToString()); xw.WriteStartElement("Materials"); if (rgTestProject.Items.Count==0) return; foreach (GridDataItem item in rgTestProject.Items) { RadComboBox rcbItem = item.FindControl("rcbItem") as RadComboBox; xw.WriteStartElement("Material"); xw.WriteAttributeString("MaterialID", rcbItem.SelectedValue.ToString()); xw.WriteEndElement(); } xw.WriteEndElement(); xw.WriteEndDocument(); xw.Flush(); xw.Close(); string FinalXML = sb.ToString().Substring(sb.ToString().IndexOf(">") + 1); string ConnString = ConfigurationManager.ConnectionStrings["KPortal"].ConnectionString; SqlConnection conn = new SqlConnection(ConnString); SqlCommand command = new SqlCommand("Exec SaveManufacturerTestProject @ProjectDetails = @ProjectDetails, @LoginID = @LoginID", conn); command.Parameters.AddWithValue("ProjectDetails", FinalXML); command.Parameters.AddWithValue("LoginID", Page.User.Identity.Name.ToString().ToLower()); conn.Open(); try { command.ExecuteNonQuery(); } finally { conn.Close(); } } protected void rbSaveProject_Click(object sender, EventArgs e) { SaveProject(); rnChangesSaved.Text = "Your test project have been saved"; rnChangesSaved.Show(); } protected void sqlUnits_Selecting(object sender, SqlDataSourceSelectingEventArgs e) { e.Command.Parameters[0].Value = Page.User.Identity.Name.ToString().ToLower(); } protected void rbShowPrice_Click(object sender, EventArgs e) { SaveProject(); rgStats.Rebind(); } protected void sqlStats_Selecting(object sender, SqlDataSourceSelectingEventArgs e) { e.Command.Parameters[1].Value = Page.User.Identity.Name.ToString().ToLower(); } }}