or
<
telerik:GridTemplateColumn
HeaderText
=
"Update"
ItemStyle-Width
=
"8%"
>
<
FilterTemplate
>
<
div
class
=
"filter-wrapper"
>
<
div
>
<
telerik:RadComboBox
runat
=
"server"
ID
=
"ddlUpdateFilter"
AutoPostBack
=
"true"
OnSelectedIndexChanged
=
"ddlUpdateFilter_SelectedIndexChanged"
MarkFirstMatch
=
"true"
AllowCustomText
=
"true"
ShowToggleImage
=
"false"
Width
=
"70px"
>
</
telerik:RadComboBox
>
<
img
src
=
"../Resources/Common/filter.png"
runat
=
"server"
id
=
"imgUpdateFilter"
alt
=
"filter"
/>
<
asp:ImageButton
runat
=
"server"
ID
=
"imgClearUpdateFilter"
ImageUrl
=
"~/Resources/Common/clear-filter.gif"
CommandName
=
"ClearFilter"
/>
</
div
>
</
div
>
</
FilterTemplate
>
<
ItemTemplate
>
<
asp:CheckBox
runat
=
"server"
ID
=
"chkEdit"
Enabled
=
"false"
/>
</
ItemTemplate
>
</
telerik:GridTemplateColumn
>
I modified editondblclick sample to use the custom datatable instead of SQL connection.
Everything worked but while save the edited values we are getting "Only items with ISinEditmode set to true can be updated" error.
asp code:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="GridEdit.aspx.cs" Inherits="GridEdit" %>
<%@ Register TagPrefix="telerik" Namespace="Telerik.Web.UI" Assembly="Telerik.Web.UI" %>
<!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
>Untitled Page</
title
>
</
head
>
<
body
>
<
form
id
=
"form1"
runat
=
"server"
method
=
"post"
>
<
div
>
<
telerik:RadScriptManager
ID
=
"RadScriptManager1"
runat
=
"server"
></
telerik:RadScriptManager
>
<!-- content start -->
<
telerik:RadCodeBlock
ID
=
"RadCodeBlock1"
runat
=
"server"
>
<
script
type
=
"text/javascript"
>
<!--
var hasChanges, inputs, dropdowns, editedRow;
function RowClick(sender, eventArgs)
{
if(editedRow && hasChanges)
{
hasChanges = false;
if(confirm("Update changes?"))
{
$find("<%= RadGrid1.ClientID %>").get_masterTableView().
$find("<%= RadGrid1.ClientID %>").get_masterTableView().updateItem(editedRow);
}
}
}
function RowDblClick(sender, eventArgs)
{
editedRow = eventArgs.get_itemIndexHierarchical();
$find("<%= RadGrid1.ClientID %>").get_masterTableView().editItem(editedRow);
}
function GridCommand(sender, args)
{
if (args.get_commandName() != "Edit")
{
editedRow = null;
}
}
function GridCreated(sender, eventArgs)
{
var gridElement = sender.get_element();
var elementsToUse = [];
inputs = gridElement.getElementsByTagName("input");
for (var i = 0; i <
inputs.length
;i++)
{
var
lowerType
=
inputs
[i].type.toLowerCase();
if(lowerType == "hidden" || lowerType == "button")
{
continue;
}
Array.add(elementsToUse, inputs[i]);
inputs[i]
.onchange
=
TrackChanges
;
}
dropdowns
=
gridElement
.getElementsByTagName("select");
for (var
i
=
0
; i < dropdowns.length;i++)
{
dropdowns[i]
.onchange
=
TrackChanges
;
}
setTimeout(function(){if(elementsToUse[0])elementsToUse[0].focus();},100);
}
function TrackChanges(e)
{
hasChanges
=
true
;
}
-->
</
script
>
</
telerik:RadCodeBlock
>
<
telerik:RadAjaxManager
ID
=
"RadAjaxManager1"
runat
=
"server"
>
<
AjaxSettings
>
<
telerik:AjaxSetting
AjaxControlID
=
"RadGrid1"
>
<
UpdatedControls
>
<
telerik:AjaxUpdatedControl
ControlID
=
"RadGrid1"
/>
<
telerik:AjaxUpdatedControl
ControlID
=
"Label1"
/>
</
UpdatedControls
>
</
telerik:AjaxSetting
>
</
AjaxSettings
>
</
telerik:RadAjaxManager
>
<
telerik:RadGrid
ID
=
"RadGrid1"
Width
=
"97%"
ShowStatusBar
=
"True"
AllowSorting
=
"True"
PageSize
=
"7"
GridLines
=
"None"
AllowPaging
=
"True"
runat
=
"server"
AllowAutomaticUpdates
=
"True"
OnItemUpdated
=
"RadGrid1_ItemUpdated"
AutoGenerateColumns
=
"False"
OnDataBound
=
"RadGrid1_DataBound"
>
<
MasterTableView
TableLayout
=
"Fixed"
DataKeyNames
=
"ProductID"
EditMode
=
"InPlace"
>
<
Columns
>
<
telerik:GridBoundColumn
UniqueName
=
"ProductID"
DataField
=
"ProductID"
HeaderText
=
"ProductID"
ReadOnly
=
"True"
FilterControlAltText
=
"Filter ProductID column"
>
<
HeaderStyle
Width
=
"10%"
/>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
UniqueName
=
"ProductName"
DataField
=
"ProductName"
HeaderText
=
"Product name"
ColumnEditorID
=
"GridTextBoxColumnEditor1"
FilterControlAltText
=
"Filter ProductName column"
>
<
HeaderStyle
Width
=
"25%"
/>
</
telerik:GridBoundColumn
>
</
Columns
>
</
MasterTableView
>
<
ClientSettings
>
<
ClientEvents
OnRowClick
=
"RowClick"
OnRowDblClick
=
"RowDblClick"
OnGridCreated
=
"GridCreated"
OnCommand
=
"GridCommand"
/>
</
ClientSettings
>
<
HeaderContextMenu
CssClass
=
"GridContextMenu GridContextMenu_Default"
>
</
HeaderContextMenu
>
<
FilterMenu
EnableImageSprites
=
"False"
>
</
FilterMenu
>
</
telerik:RadGrid
>
<
telerik:GridTextBoxColumnEditor
ID
=
"GridTextBoxColumnEditor1"
runat
=
"server"
TextBoxStyle-Width
=
"180px"
/>
<
br
/>
<
asp:Label
ID
=
"Label1"
runat
=
"server"
EnableViewState
=
"false"
/>
<
br
/>
</
div
>
</
form
>
</
body
>
</
html
>
aspx.cs code:
protected void Page_Init(object sender, EventArgs e)
{
LoadData();
}
private void LoadData()
{
DataTable table = new DataTable();
table.AcceptChanges();
DataColumn col1 = new DataColumn("ProductID");
DataColumn col2 = new DataColumn("ProductName");
col1.DataType = System.Type.GetType("System.String");
col2.DataType = System.Type.GetType("System.String");
table.Columns.Add(col1);
table.Columns.Add(col2);
for (int i = 0; i <
2
; i++)
{
DataRow
row
=
table
.NewRow();
row[col1] = i;
row[col2] = "111";
table.Rows.Add(row);
}
RadGrid1.DataSource
=
table
;
RadGrid1.Rebind();
}
protected void RadGrid1_ItemUpdated(object source, Telerik.Web.UI.GridUpdatedEventArgs e)
{
if (e.Exception != null)
{
e.KeepInEditMode
=
true
;
e.ExceptionHandled
=
true
;
SetMessage(Server.HtmlEncode("Unable to update Products. Reason: " + e.Exception.Message).Replace("'", "'").Replace("\r\n", "<br />"));
}
else
{
GridDataItem dataItem = (GridDataItem)e.Item;
SetMessage(" ProductID " + dataItem.GetDataKeyValue("ProductID") + " updated");
}
DisplayMessage(gridMessage);
}
private void DisplayMessage(string text)
{
Label1.Text = string.Format("<
span
>{0}</
span
>", text);
}
private void SetMessage(string message)
{
gridMessage = gridMessage + " " + message;
}
private string gridMessage = "Start ";
protected void RadGrid1_DataBound(object sender, EventArgs e)
{
if (!string.IsNullOrEmpty(gridMessage))
{
DisplayMessage(gridMessage);
}
}
Hi, friends i am new to Telerik...Need Help..
I am using Below code to populate data into radgrid...
can i use rad filter without datasource id to filter grid..and i want the columns of sql query into rad filter through datset ds Only .Any code..?.
protected void Page_Load(object sender, EventArgs e)
{
SqlConnection con = new SqlConnection(conStr);
con.Open();
SqlDataAdapter da = new SqlDataAdapter("SELECT NAME,STATUS_ID,DATE, FROM TBL_TABLE", con);
DataSet ds = new DataSet();
da.Fill(ds);
RadGrid1.DataSource = ds;
RadGrid1.DataBind();
con.Close();
}