I've created an automatically updating grid like the Ajax/Ajaxify Timer demo. When I edit a row, I'd like to exclude some columns from updating when the row is in edit mode (namely the ones being edited) and still have other columns update. However, when I click edit, all the columns are updated even the ones I'm editing. Is there a way to make these columns not update while I'm editing?
Here is a simple example to demonstrate what is happening.
The Default.aspx
... and the Default.aspx.cs
Thank you.
Here is a simple example to demonstrate what is happening.
The Default.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="Default" %>
<!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
>
<
telerik:RadStyleSheetManager
id
=
"RadStyleSheetManager1"
runat
=
"server"
/>
</
head
>
<
body
>
<
form
id
=
"form1"
runat
=
"server"
>
<
telerik:RadScriptManager
ID
=
"RadScriptManager1"
runat
=
"server"
>
<
Scripts
>
<%--Needed for JavaScript IntelliSense in VS2010--%>
<%--For VS2008 replace RadScriptManager with ScriptManager--%>
<
asp:ScriptReference
Assembly
=
"Telerik.Web.UI"
Name
=
"Telerik.Web.UI.Common.Core.js"
/>
<
asp:ScriptReference
Assembly
=
"Telerik.Web.UI"
Name
=
"Telerik.Web.UI.Common.jQuery.js"
/>
<
asp:ScriptReference
Assembly
=
"Telerik.Web.UI"
Name
=
"Telerik.Web.UI.Common.jQueryInclude.js"
/>
</
Scripts
>
</
telerik:RadScriptManager
>
<
script
type
=
"text/javascript"
>
//Put your JavaScript code here.
</
script
>
<
telerik:RadAjaxManager
ID
=
"RadAjaxManager1"
runat
=
"server"
EnableAJAX
=
"true"
>
<
AjaxSettings
>
<
telerik:AjaxSetting
AjaxControlID
=
"RadGrid1"
>
<
UpdatedControls
>
<
telerik:AjaxUpdatedControl
ControlID
=
"RadGrid1"
/>
</
UpdatedControls
>
</
telerik:AjaxSetting
>
<
telerik:AjaxSetting
AjaxControlID
=
"Timer1"
>
<
UpdatedControls
>
<
telerik:AjaxUpdatedControl
ControlID
=
"RadGrid1"
/>
</
UpdatedControls
>
</
telerik:AjaxSetting
>
</
AjaxSettings
>
</
telerik:RadAjaxManager
>
<
div
>
<
telerik:RadGrid
ID
=
"RadGrid1"
runat
=
"server"
GridLines
=
"None"
OnNeedDataSource
=
"RadGrid1_NeedDataSource"
OnUpdateCommand
=
"RadGrid1_UpdateCommand"
>
<
MasterTableView
Name
=
"RadGrid1TableView"
AutoGenerateColumns
=
"false"
ShowHeader
=
"true"
CommandItemDisplay
=
"None"
EditMode
=
"InPlace"
AllowPaging
=
"true"
>
<
PagerStyle
AlwaysVisible
=
"true"
Mode
=
"NextPrevNumericAndAdvanced"
Wrap
=
"false"
/>
<
Columns
>
<
telerik:GridEditCommandColumn
ButtonType
=
"ImageButton"
EditText
=
"Edit"
UniqueName
=
"EditButton"
/>
<
telerik:GridBoundColumn
DataField
=
"Value1"
HeaderText
=
"Value1"
SortExpression
=
"Value1"
AllowFiltering
=
"false"
AllowSorting
=
"false"
UniqueName
=
"Value1"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"Value2"
HeaderText
=
"Value2"
SortExpression
=
"Value2"
AllowFiltering
=
"false"
AllowSorting
=
"false"
UniqueName
=
"Value2"
ReadOnly
=
"true"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"Value3"
HeaderText
=
"Value3"
SortExpression
=
"Value3"
AllowFiltering
=
"false"
AllowSorting
=
"false"
UniqueName
=
"Value3"
ReadOnly
=
"true"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"Value4"
HeaderText
=
"Value4"
SortExpression
=
"Value4"
AllowFiltering
=
"false"
AllowSorting
=
"false"
UniqueName
=
"Value4"
ReadOnly
=
"true"
>
</
telerik:GridBoundColumn
>
</
Columns
>
</
MasterTableView
>
</
telerik:RadGrid
>
<
asp:Timer
ID
=
"Timer1"
runat
=
"server"
OnTick
=
"Timer1_Tick"
Interval
=
"3000"
/>
</
div
>
</
form
>
</
body
>
</
html
>
... and the Default.aspx.cs
using
System;
using
System.Data;
using
System.Web.UI;
using
Telerik.Web.UI;
public
partial
class
Default : Page
{
protected
void
Page_Load(
object
sender, EventArgs e)
{
}
protected
void
Timer1_Tick(
object
sender, EventArgs e)
{
RadGrid1.Rebind();
}
protected
void
RadGrid1_NeedDataSource(
object
source, GridNeedDataSourceEventArgs e)
{
RadGrid1.DataSource = GetRandomData();
}
private
static
DataTable GetRandomData()
{
DataTable dt =
new
DataTable();
Random rand =
new
Random();
dt.Columns.Add(
new
DataColumn(
"Value1"
,
typeof
(
double
)));
dt.Columns.Add(
new
DataColumn(
"Value2"
,
typeof
(
double
)));
dt.Columns.Add(
new
DataColumn(
"Value3"
,
typeof
(
double
)));
dt.Columns.Add(
new
DataColumn(
"Value4"
,
typeof
(
double
)));
for
(
int
x = 0; x < 10; x++)
{
DataRow row = dt.NewRow();
row[
"Value1"
] = rand.Next();
row[
"Value2"
] = rand.Next();
row[
"Value3"
] = rand.Next();
row[
"Value4"
] = rand.Next();
dt.Rows.Add(row);
}
return
dt;
}
protected
void
RadGrid1_UpdateCommand(
object
source, GridCommandEventArgs e)
{
// Do the update
}
}
Thank you.