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(); }<script type="text/javascript"> function showCustomDialog() { debugger; var argument = {}; var callbackFunction = function (sender, args) { var oTextBox = $get("ImageSrc"); oTextBox.value = args; } var dialogOpener = Telerik.Web.UI.Dialogs.CommonDialogScript.get_windowReference().get_dialogOpener(); dialogOpener.openUrl("/custom_editors/Images.aspx", argument, 900, 650, callbackFunction, null, "image manager", true, 36, false, true); }</script><div id="InsertImage" class="reInsertImageWrapper" style="display: none;"> <table cellspacing="0" cellpadding="0" border="0" class="reControlsLayout"> <tr> <td style="vertical-align: top;"> <label class="reDialogLabelLight" for="ImageSrc"> <span>[imagesrc]</span> </label> </td> <td class="reControlCellLight"> <table border="0" cellpadding="" cellspacing="0"> <tr> <td> <input type="text" id="ImageSrc" class="rfdIgnore" /> </td> <td style="padding-left: 4px;"> <input id="Button1" type="image" value="Browse" onClick="showCustomDialog();return false;" src="/images/icons/image_add.png" class="imgButton"/> <tools:StandardButton runat="server" ToolName="ImageManager" id="ImageManagerCaller" /> </td> </tr> </table> </td> </tr> <tr> <td> <label class="reDialogLabelLight" for="ImageAlt"> <span>[imagealttext]</span> </label> </td> <td class="reControlCellLight"> <input type="text" id="ImageAlt" class="rfdIgnore" /> </td> </tr> <tr> <td colspan="2" class="reImgPropertyControlCell"> <table cellpadding="0" cellspacing="0"> <tr> <td> <label class="reDialogLabelLight" for="ImageWidth"> <span>[width]</span> </label> </td> <td> <input type="text" id="ImageWidth" class="rfdIgnore" /> px </td> <td> <label class="reDialogLabelLight" for="ImageHeight"> <span>[height]</span> </label> </td> <td> <input type="text" id="ImageHeight" class="rfdIgnore" /> px </td> </tr> </table> </td> </tr> <tr> <td colspan="2"> <table border="0" cellpadding="0" cellspacing="0" class="reConfirmCancelButtonsTblLight"> <tr> <td align="right"> <button type="button" id="iplInsertBtn"> [ok] </button> </td> <td> <button type="button" id="iplCancelBtn"> [cancel] </button> </td> </tr> </table> </td> </tr> </table></div>
function OnRowClick(sender, eventArgs) {
alert(
"Row-Clicking")
}
function RowDoubleClick(sender, eventArgs) {
alert(
"Double-clicking")
}
<
telerik:RadGrid ID="RadGrid1" runat="server" AutoGenerateColumns="False" AllowSorting="false"
AllowMultiRowSelection="False" AllowPaging="True" GridLines="Both" ShowGroupPanel="false"
OnItemCommand="RadGrid_ItemCommand" OnNeedDataSource="RadGrid_NeedDataSource"
OnItemDataBound="OnGridItemDataBound">
<PagerStyle Mode="NextPrevAndNumeric" AlwaysVisible="true"></PagerStyle>
<MasterTableView DataKeyNames="MeterStationNumber" AllowMultiColumnSorting="False">
----
</MasterTableView>
<
ClientSettings AllowDragToGroup="false" EnableRowHoverStyle="true" >
<ClientEvents OnRowDblClick="RowDoubleClick" OnRowClick="OnRowClick"/>
</ClientSettings>