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

AjaxPanel not updating a asp:Label properly

3 Answers 266 Views
Ajax
This is a migrated thread and some comments may be shown as answers.
Julian
Top achievements
Rank 1
Julian asked on 19 Feb 2009, 07:44 PM
I have a radGrid that has inline Edit enabled. When the user clicks the inline Update link the RadGrid_UpdateCommand is triggered. Within that command I make a call to a PageValidate method. If this fails I'm trying to display a message to the screen via a ASP:Label. However the Label is not getting properly refreshed. I have created a button on the page and used the RadAjaxmanager to link the button to the label to test that the label does indeed get the proper value. However I need to ensure that when I click update and the validation fails that the error message is properly displayed (label is refreshed).

ASPX Code:

<rad:RadAjaxPanel ID="errorMessageAjaxPanel" EnableAJAX="true" runat="server"
        <asp:Label ID="errorMessageLabel" runat="server" Font-Bold="true" ForeColor="Red"></asp:Label> 
    </rad:RadAjaxPanel> 
    <asp:Button  ID="button" runat="server" /> 
    <table width="80%" style="margin-left: auto; margin-right: auto;" border="0"
        <tr> 
            <td> 
                <div style="float: left; margin: 5px 5px 10px 5px;"
                    Select Holiday Year: 
                    <asp:DropDownList ID="holidayYear" AutoPostBack="true" runat="server" OnSelectedIndexChanged="holidayYear_SelectedIndexChanged"
                    </asp:DropDownList> 
                    &nbsp 
                </div> 
            </td> 
        </tr> 
        <tr> 
            <td> 
                <rad:RadGrid ID="holidayRadGrid" AllowPaging="True" AllowSorting="True" GridLines="Horizontal" 
                    HorizontalAlign="Center" ShowFooter="true" ShowStatusBar="true" EnableAJAX="true" 
                    EnableAJAXLoadingTemplate="True" LoadingTemplateTransparency="25" AutoGenerateColumns="False" 
                    Skin="Grid" SkinsPath="~/App_Themes/VertexDefault" OnNeedDataSource="holidayRadGrid_NeedDataSource" 
                    OnUpdateCommand="holidayRadGrid_UpdateCommand"  
                    PageSize="18" runat="server"
                    <MasterTableView DataKeyNames="HolidayID,HolidayYear,HolidayDate,HolidayName" EditMode="InPlace" 
                        TableLayout="Auto" AllowNaturalSort="false" BorderColor="Black"
                        <Columns> 
                            <rad:GridEditCommandColumn UniqueName="EditCommandColumn" HeaderStyle-Width="10px" /> 
                            <rad:GridBoundColumn HeaderStyle-Width="60px" DataField="HolidayName" HeaderText="Holiday" 
                                SortExpression="HolidayName" UniqueName="HolidayName" ReadOnly="true" /> 
                            <rad:GridTemplateColumn HeaderStyle-Width="100px" DataField="HolidayDate" SortExpression="HolidayDate" 
                                UniqueName="HolidayDate"
                                <ItemTemplate> 
                                    <asp:Label ID="holidayDateLabel" Text='<%# (DateTime) Eval("HolidayDate") == DateTime.MinValue ? String.Empty : String.Format("{0:MM/dd/yyyy}", Eval("HolidayDate")) %>' 
                                        runat="server" /> 
                                </ItemTemplate> 
                                <EditItemTemplate> 
                                    <asp:Calendar ID="holidayDateCalendar" SelectedDate='<%# (DateTime) Eval("HolidayDate") == DateTime.MinValue ? ValidDate : Eval("HolidayDate") %>' 
                                        VisibleDate='<%# (DateTime) Eval("HolidayDate") == DateTime.MinValue ? ValidDate : Eval("HolidayDate") %>' 
                                        runat="server" /> 
                                    <%--<rad:RadCalendar ID="holidayDateCalendar" AutoPostBack="false" EnableMultiSelect="false" SelectedDate='<%# (DateTime) Eval("HolidayDate") == DateTime.MinValue ? ValidDate : Eval("HolidayDate") %>'  VisibleDate='<%# (DateTime) Eval("HolidayDate") == DateTime.MinValue ? ValidDate : Eval("HolidayDate") %>' runat="server" />--%> 
                                </EditItemTemplate> 
                            </rad:GridTemplateColumn> 
                            <rad:GridBoundColumn DataField="HolidayID" UniqueName="HolidayID" ReadOnly="true" 
                                Display="false" /> 
                            <rad:GridBoundColumn DataField="HolidayYear" UniqueName="HolidayYear" ReadOnly="true" 
                                Display="false" /> 
                        </Columns> 
                    </MasterTableView> 
                    <ClientSettings EnablePostBackOnRowClick="true"
                        <ClientEvents OnGridCreated="holidayRadGridCreated" OnRowContextMenu="holidayRadGridRowContextMenu" /> 
                    </ClientSettings> 
                </rad:RadGrid> 
                <br /> 
                <div> 
                    <vtx:ImageHoverButton ID="cancelButton" PostBackUrl="~/Home.aspx" ImageUrl="~/App_Themes/VertexDefault/Images/CancelNormal.png" 
                        CssClass="ImageHover" AlternateText="Search" runat="server" /> 
                </div> 
            </td> 
        </tr> 
    </table> 
    <asp:Panel ID="actionPanel" runat="server" Style="display: none" CssClass="modalPopup"
        <asp:Panel ID="titlePanel" CssClass="modalTitle" BackImageUrl="~/App_Themes/VertexDefault/Images/ModalTitleGradient.jpg" 
            runat="server"
            <div> 
                <table width="100%"
                    <tr> 
                        <td style="width: 99%"
                            <asp:Label ID="titleLabel" Text="Change status" runat="server" /> 
                        </td> 
                        <td align="right"
                            <asp:ImageButton ID="closeButton" AlternateText="Close" ImageUrl="~/App_Themes/VertexDefault/Images/Close.png" 
                                runat="server" /> 
                        </td> 
                    </tr> 
                </table> 
            </div> 
        </asp:Panel> 
        <div style="margin-top: 10px"
            Confirm delete of Holiday Date<br /> 
            <b> 
                <asp:Label ID="lblHolidayDate" runat="Server" /></b>&nbsp;for Holiday: <b> 
                    <asp:Label ID="lblHolidayName" runat="server" /></b
            <input type="hidden" id="holidayIDHidden" runat="server" /> 
            <input type="hidden" id="holidayNameHidden" runat="server" /> 
            <input type="hidden" id="holidayYearHidden" runat="server" /> 
            <input type="hidden" id="holidayDateHidden" runat="server" /> 
            <input type="hidden" id="errorMessageHidden" runat="server" /> 
        </div> 
        <br /> 
        <asp:Button ID="applyButton" Text="Apply" OnClick="applyButton_Click" runat="server" /><br /> 
        &nbsp; 
    </asp:Panel> 
    <asp:Button ID="hiddenButton" Style="display: none" runat="server" /> 
    <atk:ModalPopupExtender ID="actionPanelModalPopupExtender" BehaviorID="actionModalBehavior" 
        PopupControlID="actionPanel" TargetControlID="hiddenButton" CancelControlID="closeButton" 
        PopupDragHandleControlID="titlePanel" DropShadow="true" runat="server" /> 
    <rad:RadAjaxManager ID="ajaxManager" ClientEvents-OnResponseReceived="hideModalPopup()" 
        runat="server"
        <AjaxSettings> 
            <rad:AjaxSetting AjaxControlID="applyButton"
                <UpdatedControls> 
                    <rad:AjaxUpdatedControl ControlID="applyButton" /> 
                    <rad:AjaxUpdatedControl ControlID="errorMessageLabel" /> 
                    <rad:AjaxUpdatedControl ControlID="holidayRadGrid" LoadingPanelID="holidayRadGridLoadingPanel" /> 
                </UpdatedControls> 
            </rad:AjaxSetting> 
            <rad:AjaxSetting AjaxControlID="button"
                <UpdatedControls> 
                    <rad:AjaxUpdatedControl ControlID="errorMessageLabel" /> 
                </UpdatedControls> 
            </rad:AjaxSetting> 
        </AjaxSettings> 
    </rad:RadAjaxManager> 
    <rad:AjaxLoadingPanel ID="holidayRadGridLoadingPanel" runat="Server"
        <asp:Image ID="loadingImage" ImageUrl="~/App_Themes/VertexDefault/Grid/Loading.gif" 
            AlternateText="Loading" BorderWidth="0px" runat="server" /> 
    </rad:AjaxLoadingPanel> 
    <rad:RadMenu ID="gridContextRadMenu" IsContext="True" OnClientItemClicked="OnClientItemClickedHandler" 
        ContextMenuElementID="none" Skin="Menu" SkinsPath="~/App_Themes/VertexDefault" 
        runat="server"
        <Items> 
            <rad:RadMenuItem Text="Delete the date for this Holiday?" Value="CS" /> 
        </Items> 
    </rad:RadMenu> 

C# Code:
protected void Page_Load(object sender, EventArgs e) 
        { 
            log.Debug("Page_Load"); 
 
            // Get current user and customer 
            User user = Master.CurrentUser; 
            Customer customer = GetCustomer(user); 
 
            // Set year for page heading 
            int holidayYearPlusOne = System.DateTime.Now.Year + 1; 
            int holidayYearPlusTwo = System.DateTime.Now.Year + 2; 
 
            lblHolidayYear.Text = System.DateTime.Now.Year.ToString(); 
 
            if (!IsPostBack) 
            { 
                int currentHolidayYear = Convert.ToInt32(DateTime.Now.ToString("yyyy")); 
 
                // Populate filing year dropdown  
                holidayYear.Items.Add(new ListItem(System.DateTime.Now.Year.ToString(), System.DateTime.Now.Year.ToString())); 
                holidayYear.Items.Add(new ListItem(holidayYearPlusOne.ToString(), holidayYearPlusOne.ToString())); 
                holidayYear.Items.Add(new ListItem(holidayYearPlusTwo.ToString(), holidayYearPlusTwo.ToString())); 
             
                // Clear old data 
                Session.Remove(Constants.Session.PageData); 
                         
                // Build data 
                BuildTable(currentHolidayYear); 
            } 
            else 
            { 
                // Set year for page heading  
                lblHolidayYear.Text = holidayYear.SelectedValue; 
                 
            } 
            // Checks page security 
            CheckPageSecurity(customer, user); 
        } 
 
        /// <summary> 
        /// Handles the SelectedIndexChanged event of the holidayYear control. 
        /// </summary> 
        /// <param name="sender">The source of the event.</param> 
        /// <param name="e">The <see cref="System.EventArgs"/> instance containing the event data.</param> 
        protected void holidayYear_SelectedIndexChanged(object sender, EventArgs e) 
        { 
            log.Debug("holidayYear_SelectedIndexChanged"); 
 
            if (returns == null) 
            { 
                // Create returns manager 
                returns = ReturnsFactory.CreateReturns(); 
            } 
 
            // Clear old data 
            Session.Remove(Constants.Session.PageData); 
 
            // Build data 
            BuildTable(Convert.ToInt32(holidayYear.SelectedValue.ToString())); 
 
            // Set year for page heading  
            lblHolidayYear.Text = holidayYear.SelectedValue; 
 
            // Clear out edit mode for items in grid 
            holidayRadGrid.MasterTableView.ClearEditItems(); 
            holidayRadGrid.Rebind(); 
        } 
        #endregion 
 
        #region Private Methods 
        /// <summary> 
        /// Builds the table. 
        /// </summary> 
        private void BuildTable(int currentHolidayYear) 
        { 
            log.Debug("BuildTable"); 
 
            try 
            { 
                if (returns == null) 
                { 
                    // Create returns manager 
                    returns = ReturnsFactory.CreateReturns(); 
                } 
 
                // Clear out any errors that may have been displayed to the screen 
                errorMessageLabel.Text = ""
                 
                // Set 'Year' 
                validDate = new DateTime(Convert.ToInt32(holidayYear.SelectedValue), DateTime.Now.Month, DateTime.Now.Day); 
 
                // Fetch Holidays 
                Holidays holidays = (Holidays)Session[Constants.Session.PageData]; 
                 
                // Get Holidays if they are not already in the session 
                if (holidays == null) 
                { 
                    holidays = returns.GetHolidays(currentHolidayYear); 
                    Session[Constants.Session.PageData] = holidays; 
                } 
 
                holidayRadGrid.DataSource = holidays.Values; 
                //holidayRadGrid.DataBind(); 
 
                if (errorMessageHidden.Value.Length > 0) 
                { 
                    errorMessageLabel.Text = errorMessageHidden.Value; 
                } 
 
                // Set correct year to be used for the column HolidayDate's Header Text 
                holidayRadGrid.MasterTableView.GetColumn("HolidayDate").HeaderText = holidayYear.SelectedValue; 
                //holidayRadGrid.Rebind(); 
            } 
            catch (Exception ex) 
            { 
                log.Error("Error occurred in page '{0}'. Message: '{1}'", Request.Url.Segments[Request.Url.Segments.Length - 1], ex.Message); 
                Response.Redirect(Constants.Pages.ErrorPage); 
            } 
        } 
 
        /// <summary> 
        /// Checks the page security. 
        /// </summary> 
        /// <param name="customer">The customer.</param> 
        /// <param name="user">The user.</param> 
        private void CheckPageSecurity(Customer customer, User user) 
        { 
            log.Debug("CheckPageSecurity"); 
 
            // Allow delete/delete? 
            allowDelete = Master.CheckPageSecurity(customer, user, string.Format(@"{0}/Delete", AppRelativeVirtualPath)) == Permission.EditExecute; 
        } 
 
        /// <summary> 
        /// Gets the customer. 
        /// </summary> 
        /// <param name="user">The user.</param> 
        /// <returns></returns
        private Customer GetCustomer(User user) 
        { 
            // Get current customer 
            Customer customer = Master.CurrentCustomer; 
 
            // Customer specified on the querystring? 
            if (Request[Constants.QueryString.Customer] != null) 
            { 
                if (!Request[Constants.QueryString.Customer].Equals(customer.CustomerNumber, StringComparison.OrdinalIgnoreCase)) 
                { 
                    if (returns == null) 
                    { 
                        // Create returns manager 
                        returns = ReturnsFactory.CreateReturns(); 
                    } 
 
                    // Only allowed to specify a different customer if we are a Vertex user 
                    if (!returns.IsVertexUser(user)) 
                    { 
                        // Log security violation 
                        returns.LogSecurityViolation(user, string.Format("Attempt to access UserList.aspx with querystring '{0}'.", Request.QueryString)); 
                        Response.Redirect(Constants.Pages.HomePage); 
                    } 
 
                    // Get customer 
                    customer = returns.GetCustomer(Request[Constants.QueryString.Customer]); 
                } 
            } 
            return customer; 
        } 
 
        /// <summary> 
        /// Handles the UpdateCommand event of the holidayRadGrid control. 
        /// </summary> 
        /// <param name="source">The source of the event.</param> 
        /// <param name="e">The <see cref="Telerik.WebControls.GridCommandEventArgs"/> instance containing the event data.</param> 
        protected void holidayRadGrid_UpdateCommand(object source, GridCommandEventArgs e) 
        { 
            GridEditableItem eeditedItem = e.Item as GridEditableItem; 
             
            // Get current user and customer 
            User user = Master.CurrentUser; 
             
            try 
            { 
                if (returns == null) 
                { 
                    // Create returns manager 
                    returns = ReturnsFactory.CreateReturns(); 
                } 
 
                // Find controls in the edit item template 
                GridEditableItem item = (GridEditableItem)e.Item; 
                Calendar holidayDateCalendar = (Calendar) item.FindControl("holidayDateCalendar"); 
             
                // Validate input fields 
                if (!ValidateInput(holidayDateCalendar.SelectedDate)) 
                { 
                    holidayRadGrid.Rebind(); 
                     
                    return; 
                } 
                 
                // If the old value is equal to "1/1/0001 12:00:00 AM" then the a date for this holiday 
                // has never been set.  
                if ((DateTime)editedItem.OwnerTableView.DataKeyValues[e.Item.ItemIndex]["HolidayDate"] == DateTime.MinValue) 
                { 
                    // INSERT 
                    Holiday holiday = new Holiday(); 
                    holiday.HolidayDate = Convert.ToDateTime(holidayDateCalendar.SelectedDate); 
                    holiday.HolidayYear = Convert.ToInt32(holidayYear.SelectedValue.ToString()); 
                    holiday.HolidayID = Convert.ToInt32(editedItem.OwnerTableView.DataKeyValues[e.Item.ItemIndex]["HolidayID"].ToString()); 
                    returns.CreateHolidayDate(holiday, user.UserID); 
                } 
                else 
                { 
                    // UPDATE 
                    Holiday holiday = new Holiday(); 
                    holiday.HolidayDate = Convert.ToDateTime(holidayDateCalendar.SelectedDate); 
                    holiday.HolidayYear = Convert.ToInt32(holidayYear.SelectedValue.ToString()); 
                    holiday.HolidayID = Convert.ToInt32(editedItem.OwnerTableView.DataKeyValues[e.Item.ItemIndex]["HolidayID"].ToString()); 
                    returns.UpdateHolidayDate(holiday, user.UserID); 
                } 
 
                // Refresh grid 
                holidayRadGrid.DataSource = returns.GetHolidays(Convert.ToInt32(holidayYear.SelectedValue.ToString())).Values; 
                holidayRadGrid.Rebind(); 
                Response.Redirect(ReturnsConstants.Pages.HolidayListEdit); 
            } 
             
            catch (Exception ex) 
            { 
                // Log error 
                log.Error("Error occurred in page '{0}'. Message: '{1}'", Request.Url.Segments[Request.Url.Segments.Length - 1], ex.Message); 
 
                e.Canceled = true
            } 
        } 
 
        //protected void holidayRadGrid_ItemDataBound(object sender, GridItemEventArgs e) 
        //{ 
        //    log.Debug("holidayRadGrid_ItemCreated"); 
 
             
        //    if ((e.Item.ItemType == GridItemType.Item) || (e.Item.ItemType == GridItemType.AlternatingItem)) 
        //    { 
        //        if (e.Item is GridEditableItem) 
        //        { 
        //            GridEditableItem item = (GridEditableItem) e.Item; 
        //            Calendar holidayDateCalendar = (Calendar) item.FindControl("holidayDateCalendar"); 
        //            if (holidayDateCalendar != null) 
        //            { 
        //                holidayDateCalendar.SelectedDate = ValidDate
        //                holidayDateCalendar.VisibleDate = ValidDate
        //            } 
        //        } 
        //    } 
 
        //} 
 
        /// <summary> 
        /// Handles the NeedDataSource event of the holidayRadGrid control. 
        /// </summary> 
        /// <param name="source">The source of the event.</param> 
        /// <param name="e">The <see cref="Telerik.WebControls.GridNeedDataSourceEventArgs"/> instance containing the event data.</param> 
        protected void holidayRadGrid_NeedDataSource(object source, GridNeedDataSourceEventArgs e) 
        { 
            log.Debug("holidayRadGrid"); 
             
            // Fetch holiday Dates 
            //Holidays holidays = (Holidays)Session[Constants.Session.PageData]; 
            //holidayRadGrid.DataSource = holidays.Values; 
             
            BuildTable(Convert.ToInt32(DateTime.Now.ToString("yyyy"))); 
 
            if (errorMessageHidden.Value.Length != 0) 
            { 
                errorMessageLabel.Text = errorMessageHidden.Value; 
            } 
 
        } 
 
        /// <summary> 
        /// Handles the Click event of the applyButton control. 
        /// </summary> 
        /// <param name="sender">The source of the event.</param> 
        /// <param name="e">The <see cref="System.EventArgs"/> instance containing the event data.</param> 
        protected void applyButton_Click(object sender, EventArgs e) 
        { 
            log.Debug("applyButton_Click"); 
 
            try 
            { 
 
                if (returns == null) 
                { 
                    // Create returns factory 
                    returns = ReturnsFactory.CreateReturns(); 
                } 
 
                // Get update user details 
                User user = Master.CurrentUser; 
                 
                // Delete holiday date for a specific holiday 
                if (holidayDateHidden.Value.Length > 0) 
                { 
                    Holiday holiday = returns.GetHolidayDate(Convert.ToInt32(holidayIDHidden.Value.ToString()), Convert.ToInt32(holidayYearHidden.Value.ToString()), Convert.ToDateTime(holidayDateHidden.Value)); 
                    returns.DeleteHolidayDate(holiday, user.UserID); 
                } 
                else 
                { 
                    errorMessageLabel.Text = "You cannot delete an entry that has no date associated to it."
                    //errorMessagePanel.Visible = true
                }                        
 
                Holidays holidays = new Holidays(); 
                holidays = returns.GetHolidays(Convert.ToInt32(holidayYear.SelectedValue.ToString())); 
 
                holidayRadGrid.DataSource = holidays.Values; 
                holidayRadGrid.Rebind(); 
                 
                // Store data 
                Session[Constants.Session.PageData] = holidays; 
            } 
            catch (Exception ex) 
            { 
                log.Error("Error occurred in page '{0}'. Message: '{1}'", Request.Url.Segments[Request.Url.Segments.Length - 1], ex.Message); 
                Response.Redirect(Constants.Pages.ErrorPage); 
            } 
        } 
 
        private bool ValidateInput(DateTime holidayDate) 
        { 
            log.Debug("ValidateInput"); 
 
            // If page is not valid then let the client side show it's errors 
            if (Page.IsValid) 
            { 
                // Re-validate page (in case client side validation did not work) 
                Page.Validate(); 
            } 
 
            // If page is not valid then let the client side show it's errors 
            if (!Page.IsValid) 
            { 
                return false; 
            } 
 
            try 
            { 
                if (holidayDate.Year.ToString() != holidayYear.SelectedValue) 
                { 
                    errorMessageHidden.Value = string.Format("You must select a date that occurs within the currently selected year '{0}'.", holidayYear.SelectedValue); 
                    Master.MessageBox.Show(string.Format("You must select a date that occurs within the currently selected year '{0}'.", holidayYear.SelectedValue), MessageBoxIcon.Error); 
                    return false; 
                } 
            } 
 
            catch (Exception ex) 
            { 
                log.Error("Error occurred in page '{0}'. Message: '{1}'", Request.Url.Segments[Request.Url.Segments.Length - 1], ex.Message); 
                return false; 
            } 
 
            return true; 
         
        } 
     
        #endregion 
 
        #region Properties 
        /// <summary> 
        /// Gets a value indicating whether [allow delete]. 
        /// </summary> 
        /// <value><c>true</c> if [allow delete]; otherwise, <c>false</c>.</value> 
        protected string AllowDelete 
        { 
            get { return allowDelete.ToString().ToLower(); } 
        } 
 
        /// <summary> 
        /// Gets a value indicating whether [allow disable]. 
        /// </summary> 
        /// <value><c>true</c> if [allow disable]; otherwise, <c>false</c>.</value> 
        protected string AllowDisable 
        { 
            get { return allowDisable.ToString().ToLower(); } 
        } 
 
        /// <summary> 
        /// Gets the valid date. 
        /// </summary> 
        /// <value>The valid date.</value> 
        protected DateTime ValidDate 
        { 
            get { return validDate; } 
        } 
        #endregion 
 
 
        #region Fields 
        private bool allowDelete = true
        private bool allowDisable = true
        private IReturnsManager returns = null
        private DateTime validDate; 
        #endregion 

Any help is greatly appreciated.

3 Answers, 1 is accepted

Sort by
0
SamJ
Top achievements
Rank 1
answered on 20 Feb 2009, 06:08 AM
Hi,

Try the following:
Diasbale grid built-in ajax, replace the RadAjaxPanel with ASP:Panel, then ajaxify the grid and the label through the RadAjaxManager on the page.

<asp:Panel ID="errorMessagePanel" runat="server">  
        <asp:Label ID="errorMessageLabel" runat="server" Font-Bold="true" ForeColor="Red"></asp:Label>  
    </asp:Panel>  
    <asp:Button  ID="button" runat="server" />  
    <table width="80%" style="margin-left: auto; margin-right: auto;" border="0">  
        <tr>  
            <td>  
                <div style="float: left; margin: 5px 5px 10px 5px;">  
                    Select Holiday Year:  
                    <asp:DropDownList ID="holidayYear" AutoPostBack="true" runat="server" OnSelectedIndexChanged="holidayYear_SelectedIndexChanged">  
                    </asp:DropDownList>  
                    &nbsp  
                </div>  
            </td>  
        </tr>  
        <tr>  
            <td>  
                <rad:RadGrid ID="holidayRadGrid" AllowPaging="True" AllowSorting="True" GridLines="Horizontal"  
                    HorizontalAlign="Center" ShowFooter="true" ShowStatusBar="true" EnableAJAX="false"  
                    EnableAJAXLoadingTemplate="True" LoadingTemplateTransparency="25" AutoGenerateColumns="False"  
                    Skin="Grid" SkinsPath="~/App_Themes/VertexDefault" OnNeedDataSource="holidayRadGrid_NeedDataSource"  
                    OnUpdateCommand="holidayRadGrid_UpdateCommand"   
                    PageSize="18" runat="server">  
                    <MasterTableView DataKeyNames="HolidayID,HolidayYear,HolidayDate,HolidayName" EditMode="InPlace"  
                        TableLayout="Auto" AllowNaturalSort="false" BorderColor="Black">  
                        <Columns>  
                            <rad:GridEditCommandColumn UniqueName="EditCommandColumn" HeaderStyle-Width="10px" />  
                            <rad:GridBoundColumn HeaderStyle-Width="60px" DataField="HolidayName" HeaderText="Holiday"  
                                SortExpression="HolidayName" UniqueName="HolidayName" ReadOnly="true" />  
                            <rad:GridTemplateColumn HeaderStyle-Width="100px" DataField="HolidayDate" SortExpression="HolidayDate"  
                                UniqueName="HolidayDate">  
                                <ItemTemplate>  
                                    <asp:Label ID="holidayDateLabel" Text='<%# (DateTime) Eval("HolidayDate") == DateTime.MinValue ? String.Empty : String.Format("{0:MM/dd/yyyy}", Eval("HolidayDate")) %>'  
                                        runat="server" />  
                                </ItemTemplate>  
                                <EditItemTemplate>  
                                    <asp:Calendar ID="holidayDateCalendar" SelectedDate='<%# (DateTime) Eval("HolidayDate") == DateTime.MinValue ? ValidDate : Eval("HolidayDate") %>'  
                                        VisibleDate='<%# (DateTime) Eval("HolidayDate") == DateTime.MinValue ? ValidDate : Eval("HolidayDate") %>'  
                                        runat="server" />  
                                    <%--<rad:RadCalendar ID="holidayDateCalendar" AutoPostBack="false" EnableMultiSelect="false" SelectedDate='<%# (DateTime) Eval("HolidayDate") == DateTime.MinValue ? ValidDate : Eval("HolidayDate") %>'  VisibleDate='<%# (DateTime) Eval("HolidayDate") == DateTime.MinValue ? ValidDate : Eval("HolidayDate") %>' runat="server" />--%>  
                                </EditItemTemplate>  
                            </rad:GridTemplateColumn>  
                            <rad:GridBoundColumn DataField="HolidayID" UniqueName="HolidayID" ReadOnly="true"  
                                Display="false" />  
                            <rad:GridBoundColumn DataField="HolidayYear" UniqueName="HolidayYear" ReadOnly="true"  
                                Display="false" />  
                        </Columns>  
                    </MasterTableView>  
                    <ClientSettings EnablePostBackOnRowClick="true">  
                        <ClientEvents OnGridCreated="holidayRadGridCreated" OnRowContextMenu="holidayRadGridRowContextMenu" />  
                    </ClientSettings>  
                </rad:RadGrid>  
                <br />  
                <div>  
                    <vtx:ImageHoverButton ID="cancelButton" PostBackUrl="~/Home.aspx" ImageUrl="~/App_Themes/VertexDefault/Images/CancelNormal.png"  
                        CssClass="ImageHover" AlternateText="Search" runat="server" />  
                </div>  
            </td>  
        </tr>  
    </table>  
    <asp:Panel ID="actionPanel" runat="server" Style="display: none" CssClass="modalPopup">  
        <asp:Panel ID="titlePanel" CssClass="modalTitle" BackImageUrl="~/App_Themes/VertexDefault/Images/ModalTitleGradient.jpg"  
            runat="server">  
            <div>  
                <table width="100%">  
                    <tr>  
                        <td style="width: 99%">  
                            <asp:Label ID="titleLabel" Text="Change status" runat="server" />  
                        </td>  
                        <td align="right">  
                            <asp:ImageButton ID="closeButton" AlternateText="Close" ImageUrl="~/App_Themes/VertexDefault/Images/Close.png"  
                                runat="server" />  
                        </td>  
                    </tr>  
                </table>  
            </div>  
        </asp:Panel>  
        <div style="margin-top: 10px">  
            Confirm delete of Holiday Date<br />  
            <b>  
                <asp:Label ID="lblHolidayDate" runat="Server" /></b>&nbsp;for Holiday: <b>  
                    <asp:Label ID="lblHolidayName" runat="server" /></b>  
            <input type="hidden" id="holidayIDHidden" runat="server" />  
            <input type="hidden" id="holidayNameHidden" runat="server" />  
            <input type="hidden" id="holidayYearHidden" runat="server" />  
            <input type="hidden" id="holidayDateHidden" runat="server" />  
            <input type="hidden" id="errorMessageHidden" runat="server" />  
        </div>  
        <br />  
        <asp:Button ID="applyButton" Text="Apply" OnClick="applyButton_Click" runat="server" /><br />  
        &nbsp;  
    </asp:Panel>  
    <asp:Button ID="hiddenButton" Style="display: none" runat="server" />  
    <atk:ModalPopupExtender ID="actionPanelModalPopupExtender" BehaviorID="actionModalBehavior"  
        PopupControlID="actionPanel" TargetControlID="hiddenButton" CancelControlID="closeButton"  
        PopupDragHandleControlID="titlePanel" DropShadow="true" runat="server" />  
    <rad:RadAjaxManager ID="ajaxManager" ClientEvents-OnResponseReceived="hideModalPopup()"  
        runat="server">  
        <AjaxSettings>  
            <rad:AjaxSetting AjaxControlID="holidayRadGrid">  
                <UpdatedControls>  
                    <rad:AjaxUpdatedControl ControlID="holidayRadGrid" LoadingPanelID="holidayRadGridLoadingPanel" />  
                    <rad:AjaxUpdatedControl ControlID="errorMessagePanel" />  
                </UpdatedControls>  
            </rad:AjaxSetting>  
            <rad:AjaxSetting AjaxControlID="applyButton">  
                <UpdatedControls>  
                    <rad:AjaxUpdatedControl ControlID="applyButton" />  
                    <rad:AjaxUpdatedControl ControlID="errorMessageLabel" />  
                    <rad:AjaxUpdatedControl ControlID="holidayRadGrid" LoadingPanelID="holidayRadGridLoadingPanel" />  
                </UpdatedControls>  
            </rad:AjaxSetting>  
            <rad:AjaxSetting AjaxControlID="button">  
                <UpdatedControls>  
                    <rad:AjaxUpdatedControl ControlID="errorMessageLabel" />  
                </UpdatedControls>  
            </rad:AjaxSetting>  
        </AjaxSettings>  
    </rad:RadAjaxManager>  
    <rad:AjaxLoadingPanel ID="holidayRadGridLoadingPanel" runat="Server">  
        <asp:Image ID="loadingImage" ImageUrl="~/App_Themes/VertexDefault/Grid/Loading.gif"  
            AlternateText="Loading" BorderWidth="0px" runat="server" />  
    </rad:AjaxLoadingPanel>  
    <rad:RadMenu ID="gridContextRadMenu" IsContext="True" OnClientItemClicked="OnClientItemClickedHandler"  
        ContextMenuElementID="none" Skin="Menu" SkinsPath="~/App_Themes/VertexDefault"  
        runat="server">  
        <Items>  
            <rad:RadMenuItem Text="Delete the date for this Holiday?" Value="CS" />  
        </Items>  
    </rad:RadMenu> 

I hope this helps.



0
Julian
Top achievements
Rank 1
answered on 23 Feb 2009, 08:50 PM
The messageLabel still does not show. If I click the button control that is set to refresh the messageLabel (seen below) the messageLabel is then displayed with the proper error message.


<rad:AjaxSetting AjaxControlID="button">  
     <UpdatedControls>  
            <rad:AjaxUpdatedControl ControlID="errorMessageLabel" />  
     </UpdatedControls>  
</rad:AjaxSetting> 

0
Iana Tsolova
Telerik team
answered on 24 Feb 2009, 09:03 AM
Hi Julian,

I prepared a sample project for you following your scenario. Please check it our and let me know how it works and what differs in your case.

All the best,
Iana
the Telerik team

Instantly find answers to your questions on the new Telerik Support Portal.
Check out the tips for optimizing your support resource searches.
Tags
Ajax
Asked by
Julian
Top achievements
Rank 1
Answers by
SamJ
Top achievements
Rank 1
Julian
Top achievements
Rank 1
Iana Tsolova
Telerik team
Share this question
or