<telerik:RadGrid ID="RadGrid1" Width="97%" AllowPaging="True" PageSize="15" runat="server" AllowSorting="True" AllowFilteringByColumn="True" GridLines="None"> <MasterTableView Width="100%" AutoGenerateColumns="False" DataKeyNames="GrowerId"> <Columns> <telerik:GridTemplateColumn UniqueName="TemplateColumn" SortExpression="CompanyName"> <HeaderTemplate> <asp:CheckBox id="headerChkbox" OnCheckedChanged="chkHeader_CheckedChanged" AutoPostBack="true" runat="server" Text="Select All" ></asp:CheckBox> </HeaderTemplate> var chkHeader = RadGrid1.MasterTableView.GetColumn("headerChkbox").HeaderAbbr = "checkbox"; <telerik:RadWindowManager ID="RadWindowManager1" runat="server"> <Windows> <telerik:RadWindow ID="RadWindow1" runat="server" Modal="true" "> <ContentTemplate> <asp:Panel ID="panTest" runat="server"> <p>Test</p> </asp:Panel> </ContentTemplate> </telerik:RadWindow> </Windows> </telerik:RadWindowManager><%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm3.aspx.cs" Inherits="RadControlsWebApp1.WebForm3" %><!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 id="Head1" runat="server"> <title></title> <telerik:RadStyleSheetManager ID="RadStyleSheetManager1" runat="server" /> <style type="text/css"> body { font-family: Arial, Helvetica, Sans-Serif; font-size: 11pt; color: Black; } div.MasterContainer { width: 600px; height: 400px; padding: 0px; margin: auto; margin-top: 40px; } </style></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> <div class="MasterContainer"> <telerik:RadTabStrip ID="RadTabStrip1" runat="server" MultiPageID="RadMultiPage1" SelectedIndex="0" Skin="Hay" Width="100%"> <Tabs> <telerik:RadTab runat="server" Text="Tab1" Value="Tab1" Owner="RadTabStrip1" PageViewID="rpvTab1" /> <telerik:RadTab runat="server" Text="Tab2" Value="Tab2" Owner="RadTabStrip1" PageViewID="rpvTab2" /> </Tabs> </telerik:RadTabStrip> <telerik:RadMultiPage ID="RadMultiPage1" runat="server" SelectedIndex="0"> <telerik:RadPageView ID="rpvTab1" runat="server" Width="100%" > <table style="padding: 0px; margin: 0px; border-style: none; border-width: 0px; width: 500px;"> <tr> <td> Title: </td> <td> <telerik:RadTextBox ID="RadTextBox1" runat="server" Enabled="true" MaxLength="100" Text="Test" Width="240px"> </telerik:RadTextBox> </td> </tr> <tr> <td> Gender: </td> <td> <telerik:RadComboBox ID="RadComboBox1" runat="server" EmptyMessage="Choose Gender" Width="240px"> <Items> <telerik:RadComboBoxItem runat="server" Text="Male" Value="Male" /> <telerik:RadComboBoxItem runat="server" Text="Female" Value="Female" /> </Items> </telerik:RadComboBox> </td> </tr> </table> </telerik:RadPageView> <telerik:RadPageView ID="rpvTab2" runat="server" Width="100%"> <table style="padding: 0px; margin: 0px; border-style: none; border-width: 0px; width: 500px;"> <tr> <td> Title: </td> <td> <telerik:RadTextBox ID="txtTitle" runat="server" Enabled="true" MaxLength="100" Text="Test" Width="240px"> </telerik:RadTextBox> </td> </tr> <tr> <td> Gender: </td> <td> <telerik:RadComboBox ID="cmbxGender" runat="server" EmptyMessage="Choose Gender" Width="240px"> <Items> <telerik:RadComboBoxItem runat="server" Text="Male" Value="Male" /> <telerik:RadComboBoxItem runat="server" Text="Female" Value="Female" /> </Items> </telerik:RadComboBox> </td> </tr> </table> </telerik:RadPageView> </telerik:RadMultiPage> </div> <telerik:RadAjaxManager ID="RadAjaxManager1" runat="server"> </telerik:RadAjaxManager> </form></body></html>So, I've boiled it down to a simple case that I think captures all the important parts of my implementation. There's a commented section in the code-behind that can be uncommented to enable Load on Demand. I didn't supply any of my futile implementations in TreeView_NodeExpand because none of them have worked. I'm asking for what might go in there to make this example work.
My aspx file is:
<%@ Page AutoEventWireup="true" CodeFile="DefaultCS.aspx.cs" Inherits="Telerik.Web.Examples.Grid.Integration.GridWithTreeViewComboBoxEditors.DefaultCS" Language="c#" %> <%@ Register TagPrefix="telerik" Namespace="Telerik.Web.UI" Assembly="Telerik.Web.UI" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"></head> <body class="BODY"> <form runat="server" id="mainForm" method="post"> <telerik:RadScriptManager ID="RadScriptManager1" runat="server" /> <asp:UpdatePanel RunAt="Server"> <ContentTemplate> <telerik:RadGrid ID="FooGrid" OnNeedDataSource="FooGrid_NeedDataSource" OnItemDataBound="FooGrid_ItemDataBound" AutoGenerateEditColumn="true" runat="server" > <MasterTableView> <EditFormSettings EditFormType="Template"> <FormTemplate> <telerik:RadTreeView ID="TreeView" DataTextField="Text" DataFieldID="Key" DataFieldParentID="Parent" DataValueField="Key" OnNodeExpand="TreeView_NodeExpand" RunAt="Server" > <NodeTemplate> <telerik:RadButton ButtonType="ToggleButton" ToggleType="CheckBox" AutoPostBack="false" Checked='<%# Bind("CanView") %>' Text="View" ID="CanViewButton" RunAt="Server" /> <telerik:RadButton ButtonType="ToggleButton" ToggleType="CheckBox" AutoPostBack="false" Text="Alter" RunAt="Server" /> - <%# DataBinder.Eval(Container, "Text") %> </NodeTemplate> </telerik:RadTreeView> <telerik:RadButton Text='<%# (Container is GridEditFormInsertItem) ? "Insert" : "Update" %>' CommandName='<%# (Container is GridEditFormInsertItem) ? "PerformInsert" : "Update" %>' RunAt="Server" /> <telerik:RadButton Text="Cancel" CommandName="Cancel" RunAt="Server" /> </FormTemplate> </EditFormSettings> </MasterTableView> </telerik:RadGrid> </ContentTemplate> </asp:UpdatePanel> </form> </body> </html>And my code-behind is:
using System.Configuration; using System.Data; using System.Data.SqlClient; using System.Web.UI; using Telerik.Web.UI; using System; using System.Collections.Generic; namespace Telerik.Web.Examples.Grid.Integration.GridWithTreeViewComboBoxEditors { public partial class DefaultCS : Page { public void FooGrid_NeedDataSource(Object sender, GridNeedDataSourceEventArgs e) { FooGrid.DataSource=new GreekGods(); } public void FooGrid_ItemDataBound(Object sender, GridItemEventArgs e) { GridEditFormItem item=e.Item as GridEditFormItem; if (item != null && item.IsInEditMode) { RadTreeView treeView=item.FindControl("TreeView") as RadTreeView; if (treeView != null) { treeView.DataSource=new TreeDataList(); treeView.DataBind(); // To enable Load on Demand, uncomment these lines // foreach (RadTreeNode pNode in treeView.Nodes) { // pNode.ExpandMode=TreeNodeExpandMode.ServerSideCallBack; // pNode.Nodes.Clear(); // } } } } public void TreeView_NodeExpand(Object sender, RadTreeNodeEventArgs e) { // What can go in here that will allow me to create nodes according to // the NodeTemplate in the aspx file. } } //////////// From here down is just canned data public class GreekGod { private string name; public string Name { get { return name; } set { name = value; } } private string description; public string Description { get { return description; } set { description = value; } } private string romanName; public string RomanName { get { return romanName; } set { romanName = value; } } public GreekGod(string name, string description, string romanName) { this.name = name; this.description = description; this.romanName = romanName; } } public class GreekGods : List<GreekGod> { public GreekGods() { this.Add(new GreekGod("Aphrodite", "Goddess of love, beauty and fertility", "Venus")); this.Add(new GreekGod("Apollo", "God of prophesy, music and healing", "Apollo")); this.Add(new GreekGod("Ares", "God of war", "Mars")); } } public class TreeData { private string key; public string Key { get { return key; } set { key=value; } } private string text; public string Text { get { return text; } set { text=value; } } private string parent; public string Parent { get { return parent; } set { parent=value; } } private bool canView; public bool CanView { get { return canView; } set { canView=value; } } public TreeData(string key, string text, string parent) { Key=key; Text=text; Parent=parent; } } public class TreeDataList: List<TreeData> { public TreeDataList() { Add(new TreeData("0", "P1", null)); this[0].CanView=true; Add(new TreeData("1", "P1C1", "0")); Add(new TreeData("2", "P2", null)); Add(new TreeData("3", "P2C1", "2")); Add(new TreeData("4", "P2C2", "2")); Add(new TreeData("5", "P3", null)); Add(new TreeData("6", "P3C1", "5")); } } }Thanks.
kd
<telerik:RadGrid ID="GridComplianceReport" Width="100%" AllowPaging="True" PageSize="30" runat="server" AllowSorting="true" Visible="false" OnNeedDataSource="GridComplianceReport_NeedDataSource" GridLines="None" > <MasterTableView Width="100%" /> <PagerStyle Mode="NextPrevAndNumeric" /> </telerik:RadGrid>protected void GridComplianceReport_NeedDataSource(object source, Telerik.Web.UI.GridNeedDataSourceEventArgs e) { Employee parentEmployee = new Employee(); Employee childEmployee = new Employee(); if (Session["Employee"] != null) { parentEmployee = (Employee)Session["Employee"]; } if (Session["ChildEmployee"] != null) { childEmployee = (Employee)Session["ChildEmployee"]; if (Session["SelectedEmployeeID"].ToString() == parentEmployee.EmployeeID) { FillComplianceReport(parentEmployee); } else { FillComplianceReport(childEmployee); } } else //no child employee, populate with logged in employee { FillComplianceReport(parentEmployee); } } private void FillComplianceReport(Employee employee) { lblReportsHeader.Text = employee.Name; string who = ""; ArrayList complianceType = new ArrayList(); ArrayList complianceStatus = new ArrayList(); List<Reports> complianceReport = new List<Reports>(); who = rdbEmployeeType.SelectedItem.Value; foreach (ListItem item in chkComplianceTypes.Items) { if (item.Selected) complianceType.Add(item.Value); } foreach (ListItem item in chkComplianceStatus.Items) { if (item.Selected) complianceStatus.Add(item.Value); } complianceReport = EmployeeBLL.GetComplianceReports(employee.EmployeeID, who, complianceType, complianceStatus); Session["ComplianceReport"] = complianceReport; GridComplianceReport.DataSource = complianceReport; if (compliancereport.Count > 0) GridComplianceReport.Visible = true; ReportsExceptionPanel.Visible = false; }protected void btnGenerateComplianceReport_Click(object sender, ImageClickEventArgs e) { GridComplianceReport.Visible = true; GridComplianceReport.DataSource = null; GridComplianceReport.Rebind(); }RadWindow newWindow = new Telerik.Web.UI.RadWindow();newWindow.ID = "HelpDeskMessageWindow";newWindow.NavigateUrl = "ErrorPopup.aspx";newWindow.AutoSize = true;newWindow.Modal = true;RadWindowManager1.Windows.Add(newWindow);newWindow.VisibleOnPageLoad = true;Telerik Support,
I am receiving the following error “The operation could not be completed. Invalid FORMATETC structure” when trying to add the “RADEDITOR” Telerik Control to my page. Please find the environment details below with the mail. Also, I have attached the snapshot of the error.
Environment Details:
OS: Windows-7
IDE: Visual Studio 2008
Project using: .NET Framework 3.5
Ajax Control Toolkit Version: 3.5.50731.0
Thanks & Regards,
Varun