<
AdvancedInsertTemplate
>
<
div
class
=
"rsAdvancedEdit rsAdvancedModal"
style
=
"position: relative; width:560px; left: 30%;"
>
<
div
class
=
"rsModalBgTopLeft"
>
</
div
>
<
div
class
=
"rsModalBgTopRight"
>
</
div
>
<
div
class
=
"rsModalBgBottomLeft"
>
</
div
>
<
div
class
=
"rsModalBgBottomRight"
>
</
div
>
<
div
class
=
"rsAdvTitle"
>
<
h1
class
=
"rsAdvInnerTitle"
>
<%#Container.Appointment.Owner.Localization.AdvancedNewAppointment%>
</
h1
>
<
asp:LinkButton
ID
=
"LinkButton1"
runat
=
"server"
CausesValidation
=
"false"
CommandName
=
"Cancel"
CssClass
=
"rsAdvEditClose"
ToolTip="<%# Container.Appointment.Owner.Localization.AdvancedClose %>"> <%#Container.Appointment.Owner.Localization.AdvancedClose%></
asp:LinkButton
>
</
div
>
<
div
class
=
"rsAdvContentWrapper"
>
<
div
style
=
"display: inline-block"
>
<!-- ** -->
<
div
style
=
"float: left;"
>
<
p
>
<
telerik:RadComboBox
ID
=
"UsersComboBox"
runat
=
"server"
DataSourceID
=
"UsersDataSource"
DataTextField
=
"Fullname"
DataValueField
=
"Username"
AllowCustomText
=
"true"
EnableTextSelection
=
"false"
EmptyMessage
=
"Please select..."
Filter
=
"Contains"
Label
=
"User"
SelectedValue='<%# Bind("Username") %>'>
</
telerik:RadComboBox
>
<
asp:RequiredFieldValidator
ID
=
"RequiredFieldValidator1"
ControlToValidate
=
"UsersComboBox"
runat
=
"server"
ErrorMessage
=
"Required"
></
asp:RequiredFieldValidator
>
<
asp:CustomValidator
ID
=
"CustomValidator331"
runat
=
"server"
ControlToValidate
=
"UsersComboBox"
ClientValidationFunction
=
"validateCombo"
ValidateEmptyText
=
"true"
ErrorMessage
=
"You cansubmit only existing name"
>
</
asp:CustomValidator
>
</
p
>
<
p
>
<
div
style
=
"display: inline-block"
>
<
div
style
=
"float: left; width: 76px; text-align: right; padding-right: 5px; padding-top: 5px;"
>
<
asp:Label
ID
=
"Label1"
runat
=
"server"
ForeColor
=
"#333333"
Text
=
"Start"
></
asp:Label
>
</
div
>
<
div
>
<
telerik:RadDateTimePicker
ID
=
"StartInput"
runat
=
"server"
Culture
=
"en-NZ"
SelectedDate='<%# Bind("Start") %>'>
<
TimeView
CellSpacing
=
"-1"
Culture
=
"en-NZ"
EndTime
=
"17:30:00"
Interval
=
"00:30:00"
RenderDirection
=
"Vertical"
StartTime
=
"08:30:00"
>
</
TimeView
>
<
TimePopupButton
HoverImageUrl
=
""
ImageUrl
=
""
/>
<
Calendar
UseColumnHeadersAsSelectors
=
"False"
UseRowHeadersAsSelectors
=
"False"
ViewSelectorText
=
"x"
>
</
Calendar
>
<
DateInput
DateFormat
=
"d/MM/yyyy"
DisplayDateFormat
=
"d/MM/yyyy"
>
</
DateInput
>
<
DatePopupButton
HoverImageUrl
=
""
ImageUrl
=
""
/>
</
telerik:RadDateTimePicker
>
</
div
>
</
div
>
</
p
>
<
p
>
<
div
style
=
"display: inline-block"
>
<
div
style
=
"float: left; width: 76px; text-align: right; padding-right: 5px; padding-top: 5px;"
>
<
asp:Label
ID
=
"Label2"
runat
=
"server"
ForeColor
=
"#333333"
Text
=
"End"
></
asp:Label
>
</
div
>
<
div
>
<
telerik:RadDateTimePicker
ID
=
"EndInput"
runat
=
"server"
Culture
=
"en-NZ"
SelectedDate='<%# Bind("End") %>'>
<
TimeView
CellSpacing
=
"-1"
Culture
=
"en-NZ"
EndTime
=
"17:30:00"
Interval
=
"00:30:00"
RenderDirection
=
"Vertical"
StartTime
=
"08:30:00"
>
</
TimeView
>
<
TimePopupButton
HoverImageUrl
=
""
ImageUrl
=
""
/>
<
Calendar
UseColumnHeadersAsSelectors
=
"False"
UseRowHeadersAsSelectors
=
"False"
ViewSelectorText
=
"x"
>
</
Calendar
>
<
DateInput
DateFormat
=
"d/MM/yyyy"
DisplayDateFormat
=
"d/MM/yyyy"
>
</
DateInput
>
<
DatePopupButton
HoverImageUrl
=
""
ImageUrl
=
""
/>
</
telerik:RadDateTimePicker
>
</
div
>
</
div
>
</
p
>
<
p
>
<
div
style
=
"display: inline-block"
>
<
div
style
=
"float: left; width: 76px; text-align: right; padding-right: 5px; padding-top: 5px;"
>
<
asp:Label
ID
=
"Label3"
runat
=
"server"
ForeColor
=
"#333333"
Text
=
"Permanent"
></
asp:Label
>
</
div
>
<
div
>
<
asp:CheckBox
ID
=
"chkPerm"
runat
=
"server"
/>
<
asp:HiddenField
ID
=
"hidPerm"
runat
=
"server"
Value='<%# Bind("Perman") %>' />
</
div
>
</
div
>
</
p
>
<
p
>
<
telerik:RadComboBox
ID
=
"StatusComboBox"
runat
=
"server"
DataSourceID
=
"StatusDataSource"
DataTextField
=
"Status"
DataValueField
=
"StatusId"
Label
=
"Status"
SelectedValue='<%# Bind("StatusId") %>' Visible="false">
</
telerik:RadComboBox
>
</
p
>
</
div
>
<!-- ** -->
<
div
>
<
telerik:RadTextBox
ID
=
"DescriptionTextBox"
runat
=
"server"
Columns
=
"30"
Label
=
"Notes"
Rows
=
"4"
Text='<%# Bind("Description") %>' TextMode="MultiLine">
</
telerik:RadTextBox
>
</
div
>
</
div
>
<
asp:Panel
ID
=
"Panel1"
runat
=
"server"
CssClass
=
"rsAdvancedSubmitArea"
>
<
div
class
=
"rsAdvButtonWrapper"
>
<
asp:LinkButton
ID
=
"UpdateButton"
runat
=
"server"
CommandName
=
"Insert"
CausesValidation
=
"true"
CssClass
=
"rsAdvEditSave"
> <
span
><%# Container.Appointment.Owner.Localization.Save%></
span
></
asp:LinkButton
>
<
asp:LinkButton
ID
=
"CancelButton"
runat
=
"server"
CausesValidation
=
"false"
CommandName
=
"Cancel"
CssClass
=
"rsAdvEditCancel"
>
<
span
><%# Container.Appointment.Owner.Localization.Cancel%></
span
>
</
asp:LinkButton
>
</
div
>
</
asp:Panel
>
</
div
>
</
div
>
</
AdvancedInsertTemplate
>
<
input
type
=
"hidden"
value
=
"test"
></
input
>
<ClientSettings AllowGroupExpandCollapse="True" ReorderColumnsOnClient="false" AllowDragToGroup="false"
AllowColumnsReorder="false" EnablePostBackOnRowClick="true" >
<ClientEvents OnRowDblClick="RowDblClick" />
</ClientSettings>
Dim
editor
As
New
Telerik.Web.UI.RadEditor
editor.EditModes = EditModes.Design
Dim
toolGroup
As
New
Telerik.Web.UI.EditorToolGroup
editor.Tools.Add(toolGroup)
Dim
bold
As
New
Telerik.Web.UI.EditorTool
bold.Name =
"Bold"
bold.Text = HttpContext.GetGlobalResourceObject(
"Global"
,
"editorBold"
)
toolGroup.Tools.Add(bold)
Hi,
I implemented a treeview using webservice in a web page and it worked ok. the treeview is simple as follows:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="CategoryTreeView.aspx.cs" Inherits="iBOOKSTORE.CategoryTreeView" %>
<%@ Register assembly="Telerik.Web.UI" namespace="Telerik.Web.UI" tagprefix="telerik" %>
<!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"
>
<
asp:ScriptManager
ID
=
"ScriptManager1"
runat
=
"server"
>
</
asp:ScriptManager
>
<
div
>
<
telerik:RadTreeView
ID
=
"tvClass"
runat
=
"server"
Height
=
"400px"
Width
=
"500px"
Skin
=
"Windows7"
CheckBoxes
=
"True"
CheckChildNodes
=
"True"
>
<
WebServiceSettings
Path
=
"CategoryTreeView.aspx"
Method
=
"GetClassItems"
/>
</
telerik:RadTreeView
>
</
div
>
</
form
>
</
body
>
</
html
>
the webmethod "GetClassItems" worked fine.
but when I convert it into a usercontrol like the following:
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="UserTreeView.ascx.cs" Inherits="iBOOKSTORE.UserTreeView" %>
<%@ Register assembly="Telerik.Web.UI" namespace="Telerik.Web.UI" tagprefix="telerik" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<
div
>
<
telerik:RadTreeView
ID
=
"tvClass"
runat
=
"server"
Height
=
"400px"
Width
=
"500px"
Skin
=
"Windows7"
CheckBoxes
=
"True"
CheckChildNodes
=
"True"
>
<
WebServiceSettings
Path
=
"UserTreeView.ascx"
Method
=
"GetClassItems"
/>
</
telerik:RadTreeView
>
</
div
>
there is no difference between server side Methods. And I drag this usercontrol "UserTreeView.ascx" and drop it on a web page at the same directory. The treeview loaded ok by calling a server side function which returned a datatable. but when I click open a node, an error message popped up "GetClassItems Failed". I tried to set a break point in the WebMethod "GetClassItems", the execution never got inside. I suppose this must have something to do with the Path property. I purposely place the host page and usercontrol in the same directory, but no matter what I tried the same error occured. could you provide some advice please.
Thank you.
I send the server side code as well
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Web.Services;
using Telerik.Web.UI;
using System.Web.UI.HtmlControls;
namespace iBOOKSTORE
{
public partial class UserTreeView : System.Web.UI.UserControl
{
static DataTech.AspNet.Data.dtAspNetDataSource ds = null;
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
ds = new DataTech.AspNet.Data.dtAspNetDataSource();
LoadRootNodes(tvClass, TreeNodeExpandMode.WebService);
}
}
private static void LoadRootNodes(RadTreeView treeView, TreeNodeExpandMode expandMode)
{
SqlCommand cmd = new SqlCommand();
cmd.CommandType = CommandType.Text;
cmd.CommandText = "SELECT DPTCODE,DPTNAME FROM DEPARTMENT WHERE LEFT(DPTCODE,1) <>'-' ORDER BY DPTCODE ";
cmd.CommandTimeout = 0;
DataTable data = GetData(cmd);
foreach (DataRow row in data.Rows)
{
RadTreeNode node = new RadTreeNode();
node.Text = row["DPTNAME"].ToString();
node.Value = row["DPTCODE"].ToString();
node.ExpandMode = expandMode;
treeView.Nodes.Add(node);
}
}
private static DataTable GetData(SqlCommand sqlcmd)
{
return (ds.GetDataRows(sqlcmd, "", "", 0, int.MaxValue));
}
private static DataTable GetChildNodes(string parentId)
{
SqlCommand cmd = new SqlCommand();
cmd.CommandType = CommandType.Text;
cmd.CommandText = "SELECT SUBSTRING(pc1.CLSCODE,1," + (parentId.Trim().Length + 1).ToString() + ") AS PCODE,pc1.PCODE,pc1.CLSCODE,pc1.CLSNAME,ISNULL(pc2.ChildrenCount, 0) as ChildrenCount FROM CLASS AS pc1 " +
" LEFT JOIN ( SELECT PCODE, COUNT(*) AS ChildrenCount FROM CLASS GROUP BY PCODE) AS pc2" +
" ON SUBSTRING(pc1.CLSCODE,1," + (parentId.Trim().Length + 1).ToString() + ")=pc2.PCODE WHERE pc1.PCODE='" + parentId.Trim() + "'";
cmd.CommandTimeout = 0;
return GetData(cmd);
}
private void UpdateLoadingStatusPosition(TreeViewLoadingStatusPosition statusPosition)
{
tvClass.LoadingStatusPosition = statusPosition;
}
[WebMethod]
public static RadTreeNodeData[] GetClassItems(RadTreeNodeData node)
{
DataTable data = GetChildNodes(node.Value);
List<
RadTreeNodeData
> result = new List<
RadTreeNodeData
>();
foreach (DataRow row in data.Rows)
{
RadTreeNodeData childNode = new RadTreeNodeData();
childNode.Text = row["CLSNAME"].ToString();
childNode.Value = row["PCODE"].ToString();
if (Convert.ToInt32(row["ChildrenCount"]) > 0)
{
childNode.ExpandMode = TreeNodeExpandMode.WebService;
}
result.Add(childNode);
}
return result.ToArray();
}
}
}