Hello
i just added a Confirmation Dialog to my Radgrid using the radgrid.radconfirm. This works perfectly, but after that the Radgrid is not updated, like it still shows the deleted entry. Refreshing the page obv helps. I already tested the following:
Use advanced binding instead of simple binding.
Change to type BindingList instead of List as Datasourcetype
RadAjaxManager instead of RadAjaxPanel is not possible, because the panel is need as part of the whole concept of the webpage and to ensure that each user is only able to see what he is allowed to see.
Here is the code: ASPX
<%@ Page Title="News - Administration" Language="C#" MasterPageFile="~/AppMaster.master" AutoEventWireup="true" Inherits="News" CodeBehind="News.aspx.cs" %><%@ Register Src="NewsDetails.ascx" TagName="NewsDetails" TagPrefix="uc" %><asp:Content ID="Content" ContentPlaceHolderID="PlaceHolderContent" runat="Server"> <asp:Label ID="LabelRead" runat="server" Text="<%$Resources:Labels, NoReadRight %>" Visible="false" CssClass="Labels" /> <asp:Label ID="LabelConfirm" runat="server" Text="<%$Resources:Labels, NoReadRight %>" Visible="false" CssClass="Labels" /> <telerik:RadWindowManager RenderMode="Lightweight" ID="confirmWindow" runat="server" EnableShadow="true"> </telerik:RadWindowManager> <%--RadAjaxPanel--%> <telerik:RadAjaxPanel ID="PanelRead" runat="server" LoadingPanelID="RadAjaxLoadingPanel" Visible="false"> <telerik:RadGrid ID="RadGrid" runat="server" AutoGenerateColumns="False" GridLines="None" AllowPaging="true" PageSize="20" Width="950px" OnItemCommand="RadGrid_ItemCommand" OnInsertCommand="RadGrid_InsertCommand" OnDeleteCommand="RadGrid_DeleteCommand" OnUpdateCommand="RadGrid_UpdateCommand"> <MasterTableView Datasource="ObjectDataSourceNewsEntries" DataKeyNames="NewsEntryID" CommandItemDisplay="Top"> <CommandItemSettings ShowRefreshButton="false" ShowAddNewRecordButton="true" AddNewRecordText="Neuer News-Eintrag" /> <Columns> <%--TimestampString --%> <telerik:GridBoundColumn DataField="TimestampString" HeaderText='<%$Resources:Labels, NewsEntryTimestamp %>' UniqueName="TimestampString" DataFormatString="{0}" DataType="System.String" Display="true" Groupable="false"> <HeaderStyle Width="50px" HorizontalAlign="Left" VerticalAlign="Top" Font-Bold="false" /> <ItemStyle Wrap="false" HorizontalAlign="Left" VerticalAlign="Top" Font-Bold="false" /> </telerik:GridBoundColumn> <%--HeaderText --%> <telerik:GridBoundColumn DataField="HeaderText" HeaderText='<%$Resources:Labels, HeaderText %>' UniqueName="HeaderText" DataFormatString="{0}" DataType="System.String" Display="true" Groupable="false"> <HeaderStyle Width="330px" HorizontalAlign="Left" VerticalAlign="Top" Font-Bold="false" /> <ItemStyle Wrap="false" HorizontalAlign="Left" VerticalAlign="Top" Font-Bold="false" /> </telerik:GridBoundColumn> <%--IsActive --%> <telerik:GridBoundColumn DataField="IsActive" HeaderText='<%$Resources:Labels, IsActive %>' UniqueName="IsActive" DataFormatString="" DataType="System.Boolean" Display="true" Groupable="false"> <HeaderStyle Width="50px" HorizontalAlign="Left" VerticalAlign="Top" Font-Bold="false" /> <ItemStyle Wrap="false" HorizontalAlign="Left" VerticalAlign="Top" Font-Bold="false" /> </telerik:GridBoundColumn> <%--ErstellerUserNameVorname --%> <telerik:GridBoundColumn DataField="ErstellerUserNameVorname" HeaderText='<%$Resources:Labels, ErstellerUserNameVorname %>' UniqueName="ErstellerUserNameVorname" DataFormatString="{0}" DataType="System.String" Display="true" Groupable="false"> <HeaderStyle Width="170px" HorizontalAlign="Left" VerticalAlign="Top" Font-Bold="false" /> <ItemStyle Wrap="false" HorizontalAlign="Left" VerticalAlign="Top" Font-Bold="false" /> </telerik:GridBoundColumn> <%--AenderungsUserNameVorname --%> <telerik:GridBoundColumn DataField="AenderungsUserNameVorname" HeaderText='<%$Resources:Labels, AenderungsUserNameVorname %>' UniqueName="AenderungsUserNameVorname" DataFormatString="{0}" DataType="System.String" Display="true" Groupable="false"> <HeaderStyle Width="170px" HorizontalAlign="Left" VerticalAlign="Top" Font-Bold="false" /> <ItemStyle Wrap="false" HorizontalAlign="Left" VerticalAlign="Top" Font-Bold="false" /> </telerik:GridBoundColumn> <%--Aenderungsdatum --%> <telerik:GridBoundColumn DataField="Aenderungsdatum" HeaderText='<%$Resources:Labels, Aenderungsdatum %>' UniqueName="Aenderungsdatum" DataFormatString="{0}" DataType="System.String" Display="true" Groupable="false"> <HeaderStyle Width="80px" HorizontalAlign="Left" VerticalAlign="Top" Font-Bold="false" /> <ItemStyle Wrap="false" HorizontalAlign="Left" VerticalAlign="Top" Font-Bold="false" /> </telerik:GridBoundColumn> <%--LinkButtonEditCommand--%> <telerik:GridTemplateColumn UniqueName="ColumnEditCommand"> <HeaderStyle Width="25px" /> <ItemStyle HorizontalAlign="Center" /> <ItemTemplate> <asp:LinkButton ID="LinkButtonEditCommand" runat="server" CommandName="Edit" ToolTip="<%$Resources:Labels, Edit %>"> <asp:Image ID="ImageEditCommand" runat="server" ImageUrl="~/App_Themes/Controlling/EditIcon.gif" /> </asp:LinkButton> </ItemTemplate> </telerik:GridTemplateColumn> <%--LinkButtonDeleteCommand--%> <telerik:GridTemplateColumn UniqueName="ColumnDeleteCommand"> <HeaderStyle Width="25px" /> <ItemStyle HorizontalAlign="Center" /> <ItemTemplate> <asp:LinkButton ID="LinkButtonDeleteCommand" runat="server" CommandName="Delete" ToolTip="<%$Resources:Labels, DeleteToolTip %>"> <asp:Image ID="ImageDeleteCommand" runat="server" ImageUrl="~/App_Themes/Controlling/DeleteIcon.png" /> </asp:LinkButton> </ItemTemplate> </telerik:GridTemplateColumn> </Columns> <NestedViewTemplate> <uc:NewsDetails ID="NewsDetails" runat="server" /> </NestedViewTemplate> <EditFormSettings UserControlName="NewsCreateUpdate.ascx" EditFormType="WebUserControl"> <EditColumn UniqueName="NewsCreateUpdateColumn"></EditColumn> </EditFormSettings> </MasterTableView> </telerik:RadGrid> </telerik:RadAjaxPanel> <%--DataSources--%> <asp:ObjectDataSource ID="ObjectDataSourceNewsEntries" runat="server" SelectMethod="GetNewsEntries" TypeName="PortalDataServiceWrapper" /></asp:Content>
C#
using System;using System.Web.Services;using Telekom.Platon.PortalModel;using Telekom.Platon.Web.Code.Base;using Telekom.PORTAL.Web;using Telerik.Web.UI;public partial class News : AppBasePage{ protected override ModulEnum ModulId => ModulEnum.AdminNews; protected static Guid GridID = Guid.Empty; protected static News n; protected static RadGrid RGrid; protected void Page_Load(object sender, EventArgs e) { PanelRead.Visible = MayRead; LabelRead.Visible = !MayRead; RadScriptManager.RegisterClientScriptInclude(Page.Master, Page.Master.GetType(), "ConfirmRadWindow", ResolveClientUrl("~/Scripts/app/ConfirmRadWindow.js")); if (!Page.IsPostBack) DataBind(); } protected void RadGrid_ItemCommand(object sender, Telerik.Web.UI.GridCommandEventArgs e) { if (e.CommandName == Telerik.Web.UI.RadGrid.ExpandCollapseCommandName) { // // Expand // GridDataItem gridDataItem = e.Item as GridDataItem; string newsEntryIDString = gridDataItem.GetDataKeyValue("NewsEntryID").ToString(); Guid newsEntryID = new Guid(newsEntryIDString); NewsEntry dataItem = PortalDataService.GetNewsEntry(newsEntryID); if (!e.Item.Expanded) { NewsDetails control = (NewsDetails)gridDataItem.ChildItem.FindControl("NewsDetails"); if (control != null && dataItem != null) { control.State.FormattedContent = dataItem.FormattedContent; control.DataBind(); } } } } protected void RadGrid_InsertCommand(object sender, GridCommandEventArgs e) { GridEditableItem editedItem = e.Item as GridEditableItem; NewsCreateUpdate userControl = (NewsCreateUpdate)editedItem.FindControl(GridEditFormItem.EditFormUserControlID); if (userControl.Timestamp.HasValue) Create(userControl.Timestamp.Value, userControl.HeaderText, userControl.IsActive, userControl.FormattedContent); } protected void RadGrid_UpdateCommand(object sender, GridCommandEventArgs e) { GridEditableItem editedItem = e.Item as GridEditableItem; NewsCreateUpdate userControl = (NewsCreateUpdate)editedItem.FindControl(GridEditFormItem.EditFormUserControlID); Guid newsEntryID = GridUtil.GetValue<Guid>("NewsEntryID", e); if (userControl.Timestamp.HasValue) Update(newsEntryID, userControl.Timestamp.Value, userControl.HeaderText, userControl.IsActive, userControl.FormattedContent); } protected void RadGrid_DeleteCommand(object sender, GridCommandEventArgs e) { GridID = GridUtil.GetValue<Guid>("NewsEntryID", e); RGrid = this.RadGrid; n = this; if (Page.IsValid) { confirmWindow.RadConfirm("Sind Sie sicher das diese News gelöscht werden soll?", "confirmCallBackFn", 330, 180, null, "Newsmeldung löschen?"); } } private void Create(DateTime timestamp, string headerText, bool isActive, string formattedContent) { if (Page.IsValid) { string userID = SecurityService.GetUserID(); NewsEntry newsEntry = NewsEntry.Create(timestamp, headerText, isActive, userID); if (newsEntry != null) { newsEntry.FormattedContent = formattedContent; string message = string.Empty; PortalDataService.CreateNewsEntry(newsEntry, out message); RadGrid.DataBind(); RadGrid.CurrentPageIndex = 0; } } } private void Update(Guid newsEntryID, DateTime timestamp, string headerText, bool isActive, string formattedContent) { if (Page.IsValid) { string userID = SecurityService.GetUserID(); NewsEntry newsEntry = PortalDataService.GetNewsEntry(newsEntryID); if (newsEntry != null) { newsEntry.Timestamp = timestamp; newsEntry.HeaderText = headerText; newsEntry.FormattedContent = formattedContent; newsEntry.IsActive = isActive; newsEntry.Aenderungsdatum = DateTime.Now; newsEntry.AenderungsUserID = userID; PortalDataService.UpdateNewsEntry(newsEntry); RadGrid.DataBind(); } } } [WebMethod] public static void Delete(bool? UserReponse) { if (GridID != Guid.Empty && UserReponse.Equals(true)) { PortalDataService.DeleteNewsEntry(GridID); RGrid.DataBind(); } }}
Any Ideas what i can do?
Regards Michael

