Hi,
I have a problem when updating RadGrid that contains Bound columns, ItemTemplate and EditItemTemplate columns. Whenever I click update button on a row, the update does not work and no error message I get. Below I provided my code. Please help.
<telerik:RadGrid ID="RadGrid1" runat="server" OnItemDataBound="OnItemDataBoundHandler" AllowPaging="True" ……….. <Columns> <telerik:GridEditCommandColumn ButtonType="ImageButton" UniqueName="EditCommandColumn"> <ItemStyle CssClass="MyImageButton"></ItemStyle> </telerik:GridEditCommandColumn> <telerik:GridBoundColumn DataField="idCol" DataType="System.Int64" FilterControlAltText="Filter idCol column" HeaderText="idCol" ReadOnly="True" SortExpression="idCol" UniqueName="idCol"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="bondNo" FilterControlAltText="Filter bondNo column" HeaderText="bondNo" SortExpression="bondNo" UniqueName="bondNo" EditFormColumnIndex="0"> </telerik:GridBoundColumn> <telerik:GridTemplateColumn HeaderText="OrderNo" ItemStyle-Width="240px"> <ItemTemplate> <%#DataBinder.Eval(Container.DataItem, "OrderNo")%> </ItemTemplate> <EditItemTemplate> <telerik:RadComboBox runat="server" ID="RadComboBox1" DataTextField="OrderNo" DataValueField="OrderNo" AutoPostBack="true" OnSelectedIndexChanged="OnSelectedIndexChangedHandler" > </telerik:RadComboBox> </EditItemTemplate> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn HeaderText="OrderItem" ItemStyle-Width="240px"> <ItemTemplate> <%#DataBinder.Eval(Container.DataItem, "OrderItem")%> </ItemTemplate> <EditItemTemplate> <telerik:RadComboBox runat="server" ID="RadComboBox2" DataTextField="OrderItem" DataValueField="ItemNo"> </telerik:RadComboBox> </EditItemTemplate> </telerik:GridTemplateColumn> </Columns>
Protected Sub OnItemDataBoundHandler(sender As Object, e As GridItemEventArgs) Handles RadGrid1.ItemDataBound
If e.Item.IsInEditMode Then
Dim editItem As GridEditFormItem = CType(e.Item, GridEditFormItem)
Dim id3 As String = editItem.GetDataKeyValue("IdCol").ToString()
Dim ds As New DataSet
ds = GetOrderNo(id3)
Dim ordNo, itemNo As String
ordNo = ds.Tables(0).Rows(0)(0)
itemNo = ds.Tables(0).Rows(0)(1).ToString().Trim()
Dim OrderCombo As RadComboBox = TryCast(e.Item.FindControl("RadComboBox1"), RadComboBox)
OrderCombo.DataSource = GetDataTable("SELECT OrderNo FROM Orders")
OrderCombo.DataBind()
OrderCombo.SelectedValue = ordNo
Dim ItemCombo As RadComboBox = TryCast(editItem.FindControl("RadComboBox2"), RadComboBox)
ItemCombo.DataSource = GetDataTable("SELECT ItemNo,ItemNo as OrderItem FROM Order_Items where OrderNo='" & ordNo & "'")
ItemCombo.DataBind()
ItemCombo.SelectedValue = itemNo
End If
End Sub
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="TestGrid.aspx.vb" Inherits="Pages_Business_TestGrid" %> <!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> </head> <body> <form id="form1" runat="server"> <div> <telerik:RadScriptManager ID="RadScriptManager1" runat="server"> </telerik:RadScriptManager> <telerik:RadGrid ID="dg" runat="server" AutoGenerateColumns="false"> <MasterTableView> <Columns> <telerik:GridBoundColumn HeaderText="ID" DataField="ID"></telerik:GridBoundColumn> </Columns> </MasterTableView> </telerik:RadGrid> <asp:Button ID="btnExport" runat="server" Text="Export" /> </div> </form> </body> </html> Partial Class Pages_Business_TestGrid Inherits System.Web.UI.Page Protected Sub dg_NeedDataSource(sender As Object, e As Telerik.Web.UI.GridNeedDataSourceEventArgs) Handles dg.NeedDataSource Dim dt As New DataTable Dim r As DataRow Dim col As New DataColumn("ID", GetType(Integer)) dt.Columns.Add(col) For i As Integer = 1 To 10 r = dt.NewRow r("ID") = i dt.Rows.Add(r) Next dg.DataSource = dt End Sub Protected Sub btnExport_Click(sender As Object, e As System.EventArgs) Handles btnExport.Click Dim sb As New StringBuilder sb.Append("<table>") sb.Append("<tr>") sb.Append("<table >") sb.Append("<tr>") sb.Append("<td>Date : </td>") sb.Append("<td>") sb.Append(Now.ToShortDateString) sb.Append("</td>") sb.Append("</tr>") sb.Append("<tr>") sb.Append("<td>Time : </td>") sb.Append("<td>") sb.Append(Now.ToShortTimeString) sb.Append("</td>") sb.Append("</tr>") sb.Append("<tr>") sb.Append("<td> </td>") sb.Append("<td></td>") sb.Append("</tr>") dg.MasterTableView.Caption = sb.ToString dg.ExportSettings.OpenInNewWindow = True dg.ExportSettings.ExportOnlyData = True dg.ExportSettings.IgnorePaging = True dg.ExportSettings.Excel.Format = Telerik.Web.UI.GridExcelExportFormat.Html dg.MasterTableView.ExportToExcel() sb.Append("</table>") sb.Append("</tr>") sb.Append("</table>") End Sub End ClassSqlDataSource. My main grid will get populated using one Data Table Customer and Child Grid Will get Populate using different Data table order e.g.| DTCustomer | DTOrder | |||||
| CustomerID | Name | ContactNumber | CustomerID | OrderNumber | OrderAmount | |
| 1 | ABC | 12345 | 1 | 1 | 100 | |
| 2 | PQR | 345 | 2 | 2 | 200 | |
| 3 | XYZ | 1456 | 3 | 3 | 300 | |
Telerik team,
I have radtreeview in radsplitter.[Telerik DLL V2012.1.411.40]
I have a requirement where on a selected index change of RadCombobox a radtree control should be generated. Now if I have selected a value say A from Combobox, the Tree will be generated. Now I select a Node say Node1 from the Tree and then select a different value from Picklist to regenerate the Tree. Now I want that if Node1 is again present as a Node in the new Tree generated, it should be selected and have focus on the respected Node i.e. Node1.
Following is my code
<%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true" MaintainScrollPositionOnPostback="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> <%@ Register TagPrefix="telerik" Namespace="Telerik.Web.UI" Assembly="Telerik.Web.UI" %><asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent"><script type="text/javascript"> function OnClientClicking_RadButton(splitter, arg) { var RadTreeView1 = $find("<%=RadTreeView1.ClientID %>"); var Selectednode = RadTreeView1.get_selectedNode(); if (Selectednode != null) { Selectednode.scrollIntoView(); alert(Selectednode.get_text()); } } function splitter(splitter, arg) { var RadTreeView1 = $find("<%=RadTreeView1.ClientID %>"); var Selectednode = RadTreeView1.get_selectedNode(); if (Selectednode != null) { Selectednode.scrollIntoView(); alert(Selectednode.get_text()); } }</script></asp:Content><asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent"> <telerik:RadAjaxManager ID="RadAjaxManager1" runat="server"> <AjaxSettings> <telerik:AjaxSetting AjaxControlID="RadComboBox"> <UpdatedControls> <telerik:AjaxUpdatedControl ControlID="radsplitter" LoadingPanelID="RadAjaxLoadingPanel1" /> </UpdatedControls> </telerik:AjaxSetting> </AjaxSettings> </telerik:RadAjaxManager> <telerik:RadAjaxLoadingPanel runat="server" ID="RadAjaxLoadingPanel1"> </telerik:RadAjaxLoadingPanel> <telerik:RadSplitter ID ="radsplitter" runat="Server" Width="100%" > <telerik:RadPane ID="Radpane" runat="server" Width="30%"> <telerik:RadTreeView ID="RadTreeView1" runat="server" CheckBoxes="false" AllowNodeEditing="True" Skin="Vista" EnableDragAndDrop="true" > </telerik:RadTreeView> </telerik:RadPane> <telerik:RadSplitBar ID="Splitbar" runat="server" CollapseMode="Forward" ></telerik:RadSplitBar> <telerik:RadPane ID="Radpane1" runat="server"> <telerik:RadComboBox ID="RadComboBox" runat="server" AutoPostBack="true" OnSelectedIndexChanged="RadComboBox_SelectedIndexChanged" > <Items> <telerik:RadComboBoxItem Text ="Tree1" Value="1" /> <telerik:RadComboBoxItem Text ="Tree2" Value="2" /> </Items> </telerik:RadComboBox> </telerik:RadPane> </telerik:RadSplitter></asp:Content>using System;using Microsoft.VisualBasic;using System.Collections;using System.Collections.Generic;using System.Data;using System.Diagnostics;using Telerik.Web.UI;using System.Web.UI;using System.Xml.Linq;using System.ComponentModel;using System.Drawing;using System.Web;using System.Web.SessionState;using System.Web.UI.WebControls;using System.Web.UI.HtmlControls;using System.Xml;using System.Text;using System.Linq;using System.Configuration;using System.Security.Cryptography;using System.IO;using System.Drawing;using System.Text.RegularExpressions;public partial class _Default : System.Web.UI.Page{ protected void Page_Load(object sender, EventArgs e) { } protected void RadComboBox_SelectedIndexChanged(object sender, RadComboBoxSelectedIndexChangedEventArgs e) { DataTable dt = new DataTable(); DataRow dr ; String selectednode = ""; if (RadTreeView1.SelectedNode != null) selectednode = RadTreeView1.SelectedNode.Value; if (RadComboBox.SelectedValue == "1") { dt.Columns.Add("NODE_ID", typeof(int)); dt.Columns.Add("PARENT_NODE_ID", typeof(int)); dt.Columns.Add("NODE_NAME", typeof(String)); for (int i = 1; i < 100; i++) { dr = dt.NewRow(); dr["NODE_ID"] = i; if (i != 1) dr["PARENT_NODE_ID"] = 1; dr["NODE_NAME"] = i.ToString() + " Operating costs"; dt.Rows.Add(dr); } RadTreeView1.DataFieldID = "NODE_ID"; RadTreeView1.DataFieldParentID = "PARENT_NODE_ID"; RadTreeView1.DataTextField = "NODE_NAME"; RadTreeView1.DataValueField = "NODE_ID"; RadTreeView1.DataSource = dt; RadTreeView1.DataBind(); RadTreeView1.ExpandAllNodes(); RadTreeView1.EnableViewState = true; } if (RadComboBox.SelectedValue == "2") { dt.Columns.Add("NODE_ID", typeof(int)); dt.Columns.Add("PARENT_NODE_ID", typeof(int)); dt.Columns.Add("NODE_NAME", typeof(String)); for (int i = 1; i < 100; i++) { dr = dt.NewRow(); dr["NODE_ID"] = i; if (i != 1) dr["PARENT_NODE_ID"] = 1; dr["NODE_NAME"] = i.ToString() + " Report whether management has quantitatively estimated the financial implications (e.g., cost of insurance and carbon credits) of climate change for the organization. Where possible, quantification would be beneficial. If quantified, disclose financial implications and the tools used to quantify"; dt.Rows.Add(dr); } RadTreeView1.DataFieldID = "NODE_ID"; RadTreeView1.DataFieldParentID = "PARENT_NODE_ID"; RadTreeView1.DataTextField = "NODE_NAME"; RadTreeView1.DataValueField = "NODE_ID"; RadTreeView1.DataSource = dt; RadTreeView1.DataBind(); RadTreeView1.ExpandAllNodes(); RadTreeView1.EnableViewState = true; } if (selectednode != "") { RadTreeNode node = RadTreeView1.FindNodeByValue(selectednode); node.Selected = true; } }}
Thanks
Sampada
