<
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<
telerik:GridTemplateColumn
HeaderText
=
"One"
SortExpression
=
"One"
DataField
=
"One"
UniqueName
=
"One"
ItemStyle-Width
=
"10%"
HeaderStyle-Width
=
"10%"
>
<
ItemTemplate
>
<%# DataBinder.Eval(Container.DataItem, "One").ToString%>
</
ItemTemplate
>
</
telerik:GridTemplateColumn
>
<
telerik:GridTemplateColumn
HeaderText
=
"Two"
SortExpression
=
"Two"
UniqueName
=
"Two"
DataField
=
"Two"
ItemStyle-Width
=
"15%"
HeaderStyle-Width
=
"15%"
>
<
ItemTemplate
>
<%# DataBinder.Eval(Container.DataItem, "Two").ToString().Split(" ")(0)%>
</
ItemTemplate
>
</
telerik:GridTemplateColumn
>
<
telerik:GridTemplateColumn
HeaderText
=
"Three"
SortExpression
=
"Three"
DataField
=
"Three"
UniqueName
=
"Three"
ItemStyle-Width
=
"20%"
HeaderStyle-Width
=
"20%"
>
<
ItemTemplate
>
<%# DataBinder.Eval(Container.DataItem, "Three").ToString%>
</
ItemTemplate
>
</
telerik:GridTemplateColumn
>
<
telerik:GridTemplateColumn
HeaderText
=
"Four"
SortExpression
=
"Four"
DataField
=
"Four"
UniqueName
=
"Four"
ItemStyle-Width
=
"20%"
HeaderStyle-Width
=
"20%"
>
<
ItemTemplate
>
<%# DataBinder.Eval(Container.DataItem, "Four").ToString.Replace(Chr(13),"</
br
>")%>
</
ItemTemplate
>
</
telerik:GridTemplateColumn
>
<
telerik:GridTemplateColumn
HeaderText
=
"Five"
SortExpression
=
"Five"
UniqueName
=
"Five"
DataField
=
"Five"
ItemStyle-Width
=
"20%"
HeaderStyle-Width
=
"20%"
>
<
ItemTemplate
>
<%# DataBinder.Eval(Container.DataItem, "Five").ToString%>
</
ItemTemplate
>
</
telerik:GridTemplateColumn
>
<
telerik:GridTemplateColumn
HeaderText
=
"Six"
SortExpression
=
"Six"
UniqueName
=
"Six"
DataField
=
"Six"
ItemStyle-Width
=
"8%"
HeaderStyle-Width
=
"8%"
>
<
ItemTemplate
>
<%# DataBinder.Eval(Container.DataItem, "Six").ToString().Split(" ")(0)%>
</
ItemTemplate
>
</
telerik:GridTemplateColumn
>