
<body> <form id="form"> <div id="tiles"> <div id="centering"> <telerirk RadTileList ID="NavTiles"></telerik:RadTileList> </div> </div> </form></body><%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %><%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head runat="server"><title></title><script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script> <script type="text/javascript"> //$(document).ready(SetObject); $(window).resize(SetRADGrid); function SetRADGrid() { var grid = document.getElementById(rdgrdGenericReportClientID); var windowHeight = $(window).height(); var windowWidth = $(window).width(); var gridHeight = 0; var contentPageHeight = 510; var pageHeaderAndFooter = 125; var gridHeader = 75; gridHeight = windowHeight - pageHeaderAndFooter < contentPageHeight ? contentPageHeight - gridHeader : windowHeight - gridHeader - pageHeaderAndFooter; grid.style.height = gridHeight + "px"; var webSiteWidth = 1024; var submenuWidth = 231; var gridWidth = windowWidth < webSiteWidth ? webSiteWidth - submenuWidth : windowWidth - submenuWidth; grid.style.width = gridWidth+ "px"; //grid.repaint(); } function GridCreating(sender, eventArgs) { SetRADGrid(); } function ColumnResized(sender, eventArgs) { //alert('hi'); SetRADGrid(); } </script></head><body> <form id="form1" runat="server"> <asp:ScriptManager ID="ScriptManager1" runat="server" /> <div> <telerik:RadGrid ID="rdgrdGenericReport" AllowSorting="True" runat="server" GridLines="None" AllowPaging="True" PageSize="25" AllowFilteringByColumn="True" OnNeedDataSource="rdgrdGenericReport_NeedDataSource" OnColumnCreated="rdgrdGenericReport_ColumnCreated" ShowGroupPanel="True" EnableLinqExpressions="False" EnableTheming="false" Style="overflow: hidden; position: relative"> <GroupHeaderItemStyle Font-Bold="True" /> <ClientSettings Resizing-AllowColumnResize="true" AllowDragToGroup="True"> <Resizing AllowColumnResize="True" ResizeGridOnColumnResize="true"></Resizing> <Scrolling AllowScroll="true" /> <ClientEvents OnGridCreating="SetRADGrid" OnColumnResized="SetRADGrid" /> </ClientSettings> <ExportSettings ExportOnlyData="true" IgnorePaging="true" OpenInNewWindow="true"> </ExportSettings> <MasterTableView ShowHeader="true" BorderStyle="None" CommandItemDisplay="Top" TableLayout="Fixed"> <HeaderStyle Font-Bold="true"></HeaderStyle> <FooterStyle HorizontalAlign="right"></FooterStyle> <CommandItemTemplate/> </MasterTableView> <PagerStyle Mode="NextPrevAndNumeric" /> </telerik:RadGrid> </div> </form></body></html>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;public partial class _Default : System.Web.UI.Page{ protected void Page_Load(object sender, EventArgs e) { Page.ClientScript.RegisterStartupScript(this.GetType(), "RADGrid", string.Format("rdgrdGenericReportClientID='{0}';", rdgrdGenericReport.ClientID), true); } protected void rdgrdGenericReport_NeedDataSource(object source, GridNeedDataSourceEventArgs e) { BO bo = new BO(); rdgrdGenericReport.DataSource = bo.GetStudent(); } protected void rdgrdGenericReport_ColumnCreated(object sender, GridColumnCreatedEventArgs e) { e.Column.HeaderStyle.Width = Unit.Pixel(100); }}public class BO{ public List<Student> GetStudent() { List<Student> students = new List<Student>(); for (int counter = 1; counter <= 45; counter++) { students.Add(new Student(counter.ToString(), string.Format("Student({0})", counter), string.Format("Class Name A{0}", counter), string.Format("Marks 10{0}", counter), string.Format("Student Rank is {0}", counter) )); } return students; }}public class Student{ public Student(string id, string name, string className, string marks, string rank) { ID = id; Name = name; ClassName = className; Marks = marks; Rank = rank; } public string ID { get; set; } public string Name { get; set; } public string ClassName { get; set; } public string Marks { get; set; } public string Rank { get; set; }}Hello Support,
I am experiencing an issue with the Telerik Grid where I'm trying to delete a customer using
gvCustomers_DeleteCommand(object sender, GridCommandEventArgs e)and the incorrect Customer ID
is being passed. I believe this is happening because of paging is enabled.
What am I doing wrong? Thanks for your help in advance.
See code below:
<telerik:RadGrid ID="gvCustomers" runat="server" AllowPaging="true" AllowSorting="true" AllowAutomaticDeletes="true" AutoGenerateColumns="false" PageSize="10" DataKeyNames="CustomerId" OnItemCreated="gvCustomers_ItemCreated" OnItemCommand="gvCustomers_ItemCommand" OnItemDeleted="gvCustomers_ItemDeleted" OnDeleteCommand="gvCustomers_DeleteCommand" OnNeedDataSource="gvCustomers_NeedDataSource"> <ClientSettings EnableRowHoverStyle="true" EnableAlternatingItems="true"> <Selecting AllowRowSelect="true" /> <ClientEvents OnRowDblClick="RowDblClick" /> </ClientSettings> <ExportSettings HideStructureColumns="true" ExportOnlyData="true" /> <MasterTableView AutoGenerateColumns="false" DataKeyNames="CustomerId" ClientDataKeyNames="CustomerId" CommandItemDisplay="Top"> <CommandItemSettings ShowAddNewRecordButton="false" ShowExportToCsvButton="true" ShowRefreshButton="false" /> <Columns> <telerik:GridTemplateColumn HeaderText="Edit" UniqueName="EditCustomer"> <ItemTemplate> <asp:HyperLink ID="hlEditCustomer" runat="server" ToolTip="Update Customer Record" Text="Edit" ImageUrl="images/glyphicons_halflings_060_pencil.png" /> </ItemTemplate> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn HeaderText="Transactions" HeaderStyle-HorizontalAlign="Center" ItemStyle-HorizontalAlign="Center" UniqueName="CustomerTransactions"> <ItemTemplate> <asp:HyperLink ID="hlTransactions" runat="server" ToolTip="Customer Transactions" ImageUrl="~/images/glyphicons_halflings_031_list-alt.png" /> </ItemTemplate> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn HeaderText="New Sale" HeaderStyle-HorizontalAlign="Center" ItemStyle-HorizontalAlign="Center" UniqueName="CustomerSales"> <ItemTemplate> <asp:HyperLink ID="hlNewSale" runat="server" ToolTip="New Customer Sale" ImageUrl="~/images/glyphicons_halflings_147_usd.png" /> </ItemTemplate> </telerik:GridTemplateColumn> <telerik:GridBoundColumn DataField="CustomerId" HeaderText="Customer ID" SortExpression="CustomerId" /> <telerik:GridBoundColumn DataField="LastName" HeaderText="Last Name" SortExpression="LastName" /> <telerik:GridBoundColumn DataField="FirstName" HeaderText="First Name" SortExpression="FirstName" /> <telerik:GridBoundColumn DataField="Organization" HeaderText="Organization" SortExpression="Organization" /> <telerik:GridBoundColumn DataField="Address1" HeaderText="Address" SortExpression="Address1" /> <telerik:GridBoundColumn DataField="Address2" HeaderText="Address 2" SortExpression="Address2" Visible="false" /> <telerik:GridBoundColumn DataField="City" HeaderText="City" SortExpression="City" /> <telerik:GridBoundColumn DataField="State" HeaderText="State" SortExpression="State" /> <telerik:GridBoundColumn DataField="PostalCode" HeaderText="PostalCode" SortExpression="PostalCode" /> <telerik:GridButtonColumn UniqueName="DeleteCustomer" ConfirmText="Are you sure you want to delete this customer?" ConfirmDialogType="Classic" ConfirmTitle="Delete" ButtonType="ImageButton" CommandName="Delete" CommandArgument="CustomerId" HeaderText="Delete" HeaderStyle-Width="20" HeaderStyle-HorizontalAlign="Center" ItemStyle-HorizontalAlign="Center" ImageUrl="~/images/glyphicons_halflings_019_trash.png" /> </Columns> </MasterTableView> </telerik:RadGrid> protected void gvCustomers_DeleteCommand(object sender, GridCommandEventArgs e){ var item = (GridDataItem)e.Item;
// This is return the incorrect CustomerId because of paging. var id = item.GetDataKeyValue("CustomerId").ToString(); var customer = new Customer(id); customer.Delete(); ClientScript.RegisterStartupScript(Page.GetType(), "mykey", "CloseAndRebind();", true); // Click the Search button btnSearch_Click(sender, e); //e.Item.OwnerTableView.ParentItem.OwnerTableView.Rebind(); }
I have a RadAsyncUpload control in a RadWindow, but can't get it to save the file. I previously had the same upload control dynamically added on the page (outside the window) and it was working fine. Can someone help me with this?
First of all, I have a RadWindow defined:
<telerik:RadWindow ID="winUploadImage" runat="server" VisibleOnPageLoad="false" OnClientShow="windowLoad" VisibleStatusbar="false" AutoSize="false" Width="451" Height="275"> <ContentTemplate> </ContentTemplate></telerik:RadWindow>
Next, I have a dynamically created RadAsyncUpload Control that is created and added to the window:
protected void BtnUpload_Click(object sender, EventArgs e) { winUploadImage.ContentContainer.Controls.Add(new LiteralControl("<div class=\"quotebox\"><table class=\"quotetext\"><tr><td colspan=\"2\" class=\"quotetext\">" + "</td></tr><tr><td class=\"quotetext\">Do you want to use a previously uploaded image?" + "</td>" + "</tr>" + "</table></div>" )); RadButton clickedButton = new RadButton(); clickedButton = (RadButton)sender; RadAsyncUpload upload = new RadAsyncUpload(); upload.ID = "rauChoice"; upload.Attributes.Add("runat", "server"); upload.Attributes.Add("type", clickedButton.Attributes["type"]); upload.Attributes.Add("subtype", clickedButton.Attributes["subtype"]); //upload.Height = Unit.Parse("86px"); //upload.Width = Unit.Parse("1px"); upload.TargetFolder = "~/App_Images/uploads"; upload.TemporaryFolder = "~/App_Data/RadUploadTemp"; upload.FileUploaded += new FileUploadedEventHandler(ChangeFilename); upload.OnClientFileUploading = "uploading_file"; upload.MaxFileInputsCount = 1; upload.MaxFileSize = 5000000; // 5 MB winUploadImage.ContentContainer.Controls.Add(imgAdd); winUploadImage.ContentContainer.Controls.Add(upload); winUploadImage.Modal = false; winUploadImage.Behaviors = Telerik.Web.UI.WindowBehaviors.Close; //winUploadImage.Top = 650; //winUploadImage.Left = 825; winUploadImage.OffsetElementID = divOptions.ClientID; winUploadImage.Top = 40; winUploadImage.Left = -25; winUploadImage.VisibleOnPageLoad = true; }
When the files is uploaded, it should call this function
protected void ChangeFilename(object sender, FileUploadedEventArgs e) { try { RadAsyncUpload uploadMod = new RadAsyncUpload(); uploadMod = (RadAsyncUpload)sender; string targetFolder = uploadMod.TargetFolder; string newName = uploadMod.Attributes["type"] + "!" + uploadMod.Attributes["subtype"] + "!" + DateTime.Now.ToString("yyyyMMddHHmmssfff") ; Session[uploadMod.ID] = newName + e.File.GetExtension(); e.File.SaveAs(Path.Combine(Server.MapPath(targetFolder), newName + e.File.GetExtension())); } catch (Exception ex) { throw ex; } }
When a button inside the window is pressed, the page posts back, but the file is not uploaded (it is not saved in the target folder and the ChangeFilename funtion is not called).
How can I get the file to upload correctly?
<custom:RequestUrgency DataField="SolverUrgencyId" Groupable="false" FilterControlWidth="180px" HeaderText="Αμεσότητα" UniqueName="RequestSolverUrgency">
<headerstyle width="15%" />
<ItemTemplate>
<asp:Literal ID="litSolverUrgencyId" runat="server" Text='<%# Eval("SolverUrgencyId") %>'>
</asp:Literal>
</ItemTemplate>
</custom:RequestUrgency>
protected void gridRequests_ItemDataBound(object sender, GridItemEventArgs e)
{
try
{
if (e.Item.ItemType == GridItemType.Item || e.Item.ItemType == GridItemType.AlternatingItem)
{
#region Urgency
Literal litSolverUrgencyId = (Literal)e.Item.FindControl("litSolverUrgencyId");
dt = DAL.GetServiceRequestUrgency(request.SolverUrgencyId);
litSolverUrgencyId.Text = dt.Rows[0]["Title"].ToString();
}
// if (e.Item.ItemType == GridItemType.Item || e.Item.ItemType == GridItemType.AlternatingItem)
}
catch