or
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="Default" %>
<%@ Register Src="~/WebUserControl1.ascx" TagPrefix="uc1" TagName="WebUserControl1" %>
<!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
>
<
telerik:RadStyleSheetManager
id
=
"RadStyleSheetManager1"
runat
=
"server"
/>
</
head
>
<
body
>
<
form
id
=
"form1"
runat
=
"server"
>
<
telerik:RadScriptManager
ID
=
"RadScriptManager1"
runat
=
"server"
>
<
Scripts
>
<
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.
function onResponseEnd(sender, eventArgs) {
console.log("response end");
$.event.trigger({
type: "myEvent",
message: "event",
time: new Date()
});
}
</
script
>
<
telerik:RadAjaxLoadingPanel
runat
=
"server"
ID
=
"RadAjaxLoadingPanel1"
></
telerik:RadAjaxLoadingPanel
>
<
telerik:RadAjaxManager
ID
=
"RadAjaxManager1"
runat
=
"server"
>
<
ClientEvents
OnResponseEnd
=
"onResponseEnd"
></
ClientEvents
>
<
AjaxSettings
>
<
telerik:AjaxSetting
AjaxControlID
=
"ButtonAddItem"
>
<
UpdatedControls
>
<
telerik:AjaxUpdatedControl
ControlID
=
"RadListViewClips"
LoadingPanelID
=
"RadAjaxLoadingPanel1"
></
telerik:AjaxUpdatedControl
>
</
UpdatedControls
>
</
telerik:AjaxSetting
>
</
AjaxSettings
>
</
telerik:RadAjaxManager
>
<
div
>
<
telerik:RadButton
ID
=
"ButtonAddItem"
runat
=
"server"
Text
=
"Add item"
OnClick
=
"OnRadButtonClick"
></
telerik:RadButton
>
<
telerik:RadListView
ID
=
"RadListViewClips"
AllowPaging
=
"True"
runat
=
"server"
Visible
=
"True"
OnNeedDataSource
=
"RadListViewClipsOnNeedDataSource"
allowsorting
=
"true"
ItemPlaceholderID
=
"placeHolder"
DataKeyNames
=
"Id"
>
<%-- <
ClientSettings
>
<
ClientEvents
OnListViewCreated
=
"test"
></
ClientEvents
>
</
ClientSettings
>--%>
<
LayoutTemplate
>
<
div
id
=
"placeHolder"
runat
=
"server"
>
<
ul
></
ul
>
</
div
>
</
LayoutTemplate
>
<
ItemTemplate
>
<
li
>
<%# Eval("Name") %><
uc1:WebUserControl1
runat
=
"server"
id
=
"WebUserControl1"
/>
</
li
>
</
ItemTemplate
>
</
telerik:RadListView
>
</
div
>
</
form
>
</
body
>
</
html
>
using
System;
using
System.Collections.Generic;
using
System.Web;
using
System.Web.UI;
using
System.Web.UI.WebControls;
using
System.Data;
using
System.Configuration;
using
System.Web.Security;
using
System.Web.UI.WebControls.WebParts;
using
System.Web.UI.HtmlControls;
using
Telerik.Web.UI;
public
partial
class
Default : System.Web.UI.Page
{
private
List<ItemState> CurrentDockStates
{
get
{
//Store the info about the added docks in the session. For real life
// applications we recommend using database or other storage medium
// for persisting this information.
List<ItemState> currentDockStates = (List<ItemState>)Session[
"CurrentDockStatesMyPortal"
];
if
(Equals(currentDockStates,
null
))
{
currentDockStates =
new
List<ItemState>();
Session[
"CurrentDockStatesMyPortal"
] = currentDockStates;
}
return
currentDockStates;
}
set
{ Session[
"CurrentDockStatesMyPortal"
] = value; }
}
protected
void
Page_Load(
object
sender, EventArgs e)
{
if
(!Page.IsPostBack)
{
RadListViewClips.DataSource = CurrentDockStates;
RadListViewClips.DataBind();
}
}
protected
void
RadListViewClipsOnNeedDataSource(
object
sender, RadListViewNeedDataSourceEventArgs e)
{
RecreateItems();
}
private
void
RecreateItems()
{
var source = CurrentDockStates;
RadListViewClips.DataSource = source;
}
protected
void
OnRadButtonClick(
object
sender, EventArgs e)
{
CurrentDockStates.Add(
new
ItemState
{
Name =
"Prova"
,
Id = CurrentDockStates.Count
});
RadListViewClips.Rebind();
}
}
internal
class
ItemState
{
public
string
Name {
get
;
set
; }
public
int
Id {
get
;
set
; }
}
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="WebUserControl1.ascx.cs" Inherits="TelerikWebApp1.WebUserControl1" %>
<
script
>
$(document).on("myEvent", myEventHandler);
function myEventHandler(e) {
console.log("myEvent on: usercontrol");
}
</
script
>
<
telerik:GridDateTimeColumn
DataField
=
"Date"
HeaderStyle-Width
=
"135px"
HeaderText
=
"Date"
ColumnEditorID
=
"dateEditor"
SortExpression
=
"Date"
UniqueName
=
"Date"
PickerType
=
"DatePicker"
>
<
ColumnValidationSettings
EnableRequiredFieldValidation
=
"True"
>
<
RequiredFieldValidator
ForeColor
=
"Red"
ErrorMessage
=
"This field is required"
ID
=
"reqDateVal"
></
RequiredFieldValidator
>
</
ColumnValidationSettings
>
</
telerik:GridDateTimeColumn
>
<
telerik:RadGrid
ID
=
"RadGrid1"
runat
=
"server"
AutoGenerateColumns
=
"False"
AllowSorting
=
"False"
AllowMultiRowSelection
=
"False"
AllowPaging
=
"False"
OnNeedDataSource
=
"RadGrid1_NeedDataSource"
OnDetailTableDataBind
=
"RadGrid1_DetailTableDataBind"
Skin
=
"Default"
>
<
MasterTableView
DataKeyNames
=
"col1"
ExpandCollapseColumn-ButtonType
=
"PushButton"
>
<
DetailTables
>
<
telerik:GridTableView
Name
=
"detailGrid"
Width
=
"95%"
BorderStyle
=
"Solid"
BorderWidth
=
"1px"
HorizontalAlign
=
"Center"
>
<
Columns
>
<
telerik:GridBoundColumn
HeaderText
=
"col1"
HeaderButtonType
=
"TextButton"
DataField
=
"col1"
/>
<
telerik:GridBoundColumn
HeaderText
=
"col2"
HeaderButtonType
=
"TextButton"
DataField
=
"col2"
/>
</
Columns
>
</
telerik:GridTableView
>
</
DetailTables
>
<
Columns
>
.....