Hi,
I'm using a RadGrid with a delete button.
When clicking the delete button, I like to show a window confirm box.
The box will not be shown when the grid in the AjaxUpdatedControl list.
How can I show the window and keep the RadGrid in the AjaxUpdatedControl list?
Thanks,
Egbert
Here is the xaml and code file:
I'm using a RadGrid with a delete button.
When clicking the delete button, I like to show a window confirm box.
The box will not be shown when the grid in the AjaxUpdatedControl list.
How can I show the window and keep the RadGrid in the AjaxUpdatedControl list?
Thanks,
Egbert
Here is the xaml and code file:
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="ReportsGeneral.ascx.cs" Inherits="ReportsGeneral" %><%@ Register TagPrefix="uc" TagName="InfoPanel" Src="~/InfoPanel.ascx" %><%@ Register TagPrefix="uc" TagName="RisWindow" Src="~/RisWindow.ascx" %><telerik:RadScriptBlock ID="RadScriptBlock1" runat="server"> <script type="text/javascript"> function OnClientFilesUploaded(sender, args) { $find('<%=RadAjaxManager1.ClientID %>').ajaxRequest(); } </script></telerik:RadScriptBlock><telerik:RadAjaxManager ID="RadAjaxManager1" runat="server" EnablePageHeadUpdate="false"> <AjaxSettings> <telerik:AjaxSetting AjaxControlID="RadAjaxManager1"> <UpdatedControls> <telerik:AjaxUpdatedControl ControlID="RadAsyncUploadReport" /> <telerik:AjaxUpdatedControl ControlID="RadGridReports" /> </UpdatedControls> </telerik:AjaxSetting> </AjaxSettings></telerik:RadAjaxManager><div style="margin: 15px;"> <center> <table> <tr> <td valign="top"> Begin <telerik:RadCalendar ID="RadCalendar1" runat="server"> </telerik:RadCalendar> </td> <td rowspan="2" valign="top" style="margin-left: 10px; padding-left: 10px;"> Rapporten <telerik:RadGrid ID="RadGridReports" runat="server" AllowPaging="True" ActiveItemStyle-Wrap="True" ShowStatusBar="true" AllowSorting="True" AllowMultiRowEdit="true" AutoGenerateColumns="false" AllowAutomaticInserts="true" OnNeedDataSource="RadGridReports_NeedDataSource" ClientSettings-Selecting-AllowRowSelect="true" ClientSettings-EnablePostBackOnRowClick="true" OnItemCommand="RadGridReports_ItemCommand"> <MasterTableView PageSize="10" NoMasterRecordsText="No data"> <Columns> <telerik:GridBoundColumn DataField="report_id" HeaderText="ID" UniqueName="id" Display="false"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="owner" HeaderText="Eigenaar" UniqueName="owner"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="filename" HeaderText="Rapport" UniqueName="filename"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="info" HeaderText="Info" UniqueName="info" Display="false"> </telerik:GridBoundColumn> <telerik:GridButtonColumn UniqueName="DeleteReportCommand" CommandName="DeleteReport" ButtonType="ImageButton" ImageUrl="~/Skins/Office2010Blue/Grid/Delete.png" Text="Verwijder" ItemStyle-Width="24px"> </telerik:GridButtonColumn> </Columns> </MasterTableView> <ClientSettings EnableRowHoverStyle="true"> </ClientSettings> </telerik:RadGrid> <br /> <telerik:RadButton runat="server" ID="checkBoxOnlyShowMyReports" Text=" Alleen eigen rapporten tonen" ButtonType="ToggleButton" ToggleType="CheckBox" OnClick="checkBoxOnlyShowMyReports_Click"> </telerik:RadButton> <br /> <br /> <asp:Panel runat="server" GroupingText="Upload rapport"> <telerik:RadAsyncUpload ID="RadAsyncUploadReport" runat="server" OnFileUploaded="RadAsyncUploadReport_FileUploaded" OnClientFilesUploaded="OnClientFilesUploaded" AllowedFileExtensions="xlsx" Localization-Select="Selecteer" Width="99%"> </telerik:RadAsyncUpload> <br /> <uc:InfoPanel ID="InfoPanel1" runat="server" Type="note" Text="Je kan alleen rapporten uploaden met de .xlsx extensie!" HeaderText="Let op!"/> </asp:Panel> <br /> <div style="text-align: center"> <telerik:RadButton ID="buttonGenerateReport" runat="server" Text="Genereer rapport!" OnClick="buttonGenerateReport_Click" Skin="MetroTouch"></telerik:RadButton> </div> <uc:InfoPanel ID="InfoPanel2" runat="server" Type="note" Text="Bezig met invullen van het rapport!" HeaderText="" Visible="false"/> </td> </tr> <tr> <td valign="top"> Eind <telerik:RadCalendar ID="RadCalendar2" runat="server"> </telerik:RadCalendar> </td> <td> </td> </tr> </table> <uc:RisWindow runat="server" ID="windowWarning" /> <telerik:RadNotification ID="RadNotification" runat="server" Text="Initial text" Position="Center" AutoCloseDelay="0" Width="350" Title="Current time" EnableRoundedCorners="true" /> <telerik:RadWindow ID="RadWindowConfirm" VisibleOnPageLoad="false" Title="Waarschuwing" runat="server" Modal="true" AutoSize="false" Width="400" Height="200" VisibleTitlebar="true" VisibleStatusbar="False" Behaviors="None" Skin="MetroTouch"> <ContentTemplate> <p style="text-align: center;"> <asp:Label runat="server" ID="label1" Text="Rapport verwijderen?"></asp:Label> </p> <p style="padding: 10px; text-align: center;"> <telerik:RadButton ID="ButtonDeleteReportYes" Text="Ja" AutoPostBack="true" runat="server" OnClick="ButtonDeleteReportYes_Click" Skin="MetroTouch"> </telerik:RadButton> <telerik:RadButton ID="RadDeleteReportNo" Text="Nee" AutoPostBack="true" runat="server" OnClick="ButtonDeleteReportNo_Click" Skin="MetroTouch"> </telerik:RadButton> </p> </ContentTemplate> </telerik:RadWindow> </center></div>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.IO;using Ris.Classes;using System.Data;using SpreadsheetLight;using DocumentFormat.OpenXml.Spreadsheet;public partial class ReportsGeneral : System.Web.UI.UserControl{ private DbHours dbHour = new DbHours(); private DbProjects dbProject = new DbProjects(); private DbReports dbReports = null; private DbTasks dbTask = new DbTasks(); private DbUsers dbUser = new DbUsers(); private string userID = string.Empty; protected void Page_Load(object sender, EventArgs e) { this.userID = Session["UserID"].ToString(); dbReports = new DbReports(); if (!IsPostBack) { if (Session["OnlyUseMyReports"].ToString() == "0") { this.checkBoxOnlyShowMyReports.Checked = false; } else { this.checkBoxOnlyShowMyReports.Checked = true; } } } protected override void OnPreRender(EventArgs e) { base.OnPreRender(e); } protected void UploadReport_Click(object sender, EventArgs e) { this.RadAsyncUploadReport.Visible = true; } protected void RadAsyncUploadReport_FileUploaded(object sender, FileUploadedEventArgs e) { string shortName = dbUser.GetUserItem(this.userID, "short_name"); //// Save the file string filename = Global.ReportFolder + shortName + "-" + e.File.FileName; e.File.SaveAs(filename); //// Store the fileinfo in the database DbReports dbReports = new DbReports(); if (!dbReports.ReportExist(e.File.FileName, this.userID)) { dbReports.InsertReport(e.File.FileName, this.userID); } this.RadGridReports.Rebind(); } protected void RadGridReports_NeedDataSource(object sender, EventArgs e) { this.DisplayReports(); } private void DisplayReports() { DataSet dSet = new DataSet(); if (Session["OnlyUseMyReports"].ToString() == "0") { dSet = dbReports.GetAllReports(); this.RadGridReports.Columns[4].Display = false; } else { dSet = dbReports.GetMyReports(this.userID); this.RadGridReports.Columns[4].Display = true; } this.RadGridReports.DataSource = dSet; } protected void buttonGenerateReport_Click(object sender, EventArgs e) { if (this.RadGridReports.SelectedItems.Count <= 0) { this.windowWarning.Show("Selecteer eerst een rapport!"); return; } // now start with the reporting string reportID = Session["ReportID"].ToString(); string ownerID = dbReports.GetReportItem(reportID, "user_id"); string reportFileName = dbReports.GetReportItem(reportID, "filename"); string shortNameOwner = dbUser.GetUserItem(ownerID, "short_name"); string completePath = Global.ReportFolder + shortNameOwner + "-" + reportFileName; if (reportFileName.ToLower().StartsWith("vakantiekaart")) { ReportsVacation reportsVacation = new ReportsVacation(); string reportResult = reportsVacation.CreateReport(completePath, reportFileName); if (reportResult != string.Empty) { this.windowWarning.Show(reportResult); return; } } else { ReportsStandard reportsStandard = new ReportsStandard(); string reportResult = reportsStandard.CreateReport(completePath, reportFileName); } try { this.FileResponse(reportFileName, Global.ReportOutputFolder + reportFileName); } catch (Exception ex) { this.windowWarning.Show("Fout bij opslaan rapport: " + Global.ReportOutputFolder + reportFileName + "! Bestaat de folder?"); } //this.RadNotification.VisibleOnPageLoad = true; //this.InfoPanel2.Visible = true; return; } protected void RadGridReports_ItemCommand(object source, GridCommandEventArgs e) { if (e.CommandName == "RowClick" && e.Item is GridDataItem) { e.Item.Selected = true; GridDataItem item = e.Item as GridDataItem; Session["ReportID"] = item["id"].Text; } if (e.CommandName == "DeleteReport") { GridDataItem item = e.Item as GridDataItem; Session["DeleteReportID"] = item["id"].Text; this.RadWindowConfirm.VisibleOnPageLoad = true; } } private void FileResponse(string downloadfilename, string filePath) { System.IO.FileInfo file = new System.IO.FileInfo(filePath); //-- if the file exists if (file.Exists) //set appropriate headers { BinaryReader fs = new BinaryReader(file.OpenRead()); HttpContext.Current.Response.ClearContent(); HttpContext.Current.Response.Clear(); HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment; filename=" + downloadfilename); HttpContext.Current.Response.AddHeader("Content-Length", file.Length.ToString()); HttpContext.Current.Response.ContentType = "application/octet-stream"; byte[] bite = fs.ReadBytes((int)file.Length); fs.Close(); HttpContext.Current.Response.BinaryWrite(bite); } } protected void checkBoxOnlyShowMyReports_Click(object sender, EventArgs e) { Session["OnlyUseMyReports"] = "0"; if (checkBoxOnlyShowMyReports.Checked == true) { Session["OnlyUseMyReports"] = "1"; } this.RadGridReports.Rebind(); } protected void ButtonDeleteReportYes_Click(object sender, EventArgs e) { this.RadWindowConfirm.VisibleOnPageLoad = false; this.dbReports.DeleteReport(Session["DeleteReportID"].ToString()); } protected void ButtonDeleteReportNo_Click(object sender, EventArgs e) { this.RadWindowConfirm.VisibleOnPageLoad = false; }}