This is a migrated thread and some comments may be shown as answers.

RadGrid does not display intitally when it is referenced in the Ajax Manager

1 Answer 84 Views
Grid
This is a migrated thread and some comments may be shown as answers.
Yuriy
Top achievements
Rank 1
Yuriy asked on 14 Dec 2011, 09:50 PM
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:

<%@ 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();
        }
 
    }
}

1 Answer, 1 is accepted

Sort by
0
Maria Ilieva
Telerik team
answered on 19 Dec 2011, 12:29 PM
Hello Yuriy,

Please review the answer provided in the support ticket you have opened with us for the same issue.

Regards,
Maria Ilieva
the Telerik team
If you want to get updates on new releases, tips and tricks and sneak peeks at our product labs directly from the developers working on the RadControls for ASP.NET AJAX, subscribe to their blog feed now
Tags
Grid
Asked by
Yuriy
Top achievements
Rank 1
Answers by
Maria Ilieva
Telerik team
Share this question
or