Hi,
I am using a RadPanel bar with three panel items. I want to load the controls dynamically in each panel item depends on the panel item expanded. I have using the client side event "onclientitemexpand" to generate the postback. In the client side function first i have used the __doPostBack function to initiate the postback. When I am using __doPostBack the page will be refreshed so i move to the following ajaxrequest function "$find("<%=ajaxmanager1.ClientID%>").ajaxRequest("PanelItem");. But nothing will happened that is the page is not postbacked. I attach the code below.
Looking forward your reply.
Kind regards,
Velkumar.
I am using a RadPanel bar with three panel items. I want to load the controls dynamically in each panel item depends on the panel item expanded. I have using the client side event "onclientitemexpand" to generate the postback. In the client side function first i have used the __doPostBack function to initiate the postback. When I am using __doPostBack the page will be refreshed so i move to the following ajaxrequest function "$find("<%=ajaxmanager1.ClientID%>").ajaxRequest("PanelItem");. But nothing will happened that is the page is not postbacked. I attach the code below.
C#
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using Telerik.Web.UI;
using System.Web.UI.WebControls;
public partial class RadPanelDemo : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
CustomContentTemplate1 template1= new CustomContentTemplate1();
CustomContentTemplate2 template2 = new CustomContentTemplate2();
if (IsPostBack)
{
lblpost.Text = "OnPostBack";
}
foreach (RadPanelItem item in RadPanelBar1.Items)
{
if (IsPostBack)
{
Response.Write("post");
item.ContentTemplate = new CustomContentTemplate2();
template2.InstantiateIn(item);
item.DataBind();
}
else
{
Response.Write("load");
item.ContentTemplate = new CustomContentTemplate1();
template1.InstantiateIn(item);
item.DataBind();
}
}
ajaxmanager1.AjaxRequest += new RadAjaxControl.AjaxRequestDelegate(ajaxmanager1_AjaxRequest);
}
void ajaxmanager1_AjaxRequest(object sender, AjaxRequestEventArgs e)
{
Response.Write(e.Argument);
}
}
class CustomContentTemplate1 : ITemplate
{
public void InstantiateIn(Control container)
{
Label label1 = new Label();
label1.Font.Bold = true;
label1.DataBinding += new EventHandler(label1_DataBinding);
container.Controls.Add(label1);
}
private void label1_DataBinding(object sender, EventArgs e)
{
Label target = (Label)sender;
RadPanelItem item = (RadPanelItem)target.BindingContainer;
target.Text ="load";
//Alternative way:
//string itemText = (string)DataBinder.Eval(item, "Value"); target.Text = itemText;
}
}
class CustomContentTemplate2 : ITemplate
{
public void InstantiateIn(Control container)
{
Label label1 = new Label();
label1.Font.Bold = true;
label1.DataBinding += new EventHandler(label1_DataBinding);
container.Controls.Add(label1);
}
private void label1_DataBinding(object sender, EventArgs e)
{
Label target = (Label)sender;
RadPanelItem item = (RadPanelItem)target.BindingContainer;
target.Text = "post";
//Alternative way:
//string itemText = (string)DataBinder.Eval(item, "Value"); target.Text = itemText;
}
}
class CustomContentTemplate3 : ITemplate
{
public void InstantiateIn(Control container)
{
Label label1 = new Label();
label1.Font.Bold = true;
label1.DataBinding += new EventHandler(label1_DataBinding);
container.Controls.Add(label1);
}
private void label1_DataBinding(object sender, EventArgs e)
{
Label target = (Label)sender;
RadPanelItem item = (RadPanelItem)target.BindingContainer;
target.Text = item.Value;
//Alternative way:
//string itemText = (string)DataBinder.Eval(item, "Value"); target.Text = itemText;
}
}
ASPX
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="RadPanelDemo.aspx.cs" Inherits="RadPanelDemo" %>
<%@ 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
>
<
telerik:RadCodeBlock
ID
=
"RadCodeBlock1"
runat
=
"server"
>
<
script
type
=
"text/javascript"
language
=
"javascript"
>
function OnClientItemExpand(sender, args) {
$find("<%=ajaxmanager1.ClientID%>").ajaxRequest("arguments");
}
</
script
>
</
telerik:RadCodeBlock
>
</
head
>
<
body
>
<
form
id
=
"form1"
runat
=
"server"
>
<
telerik:RadAjaxManager
ID
=
"ajaxmanager1"
runat
=
"server"
EnableAJAX
=
"true"
>
<
AjaxSettings
>
<
telerik:AjaxSetting
AjaxControlID
=
"RadPanelBar1"
>
<
UpdatedControls
>
<
telerik:AjaxUpdatedControl
ControlID
=
"RadPanelBar1"
/>
</
UpdatedControls
>
</
telerik:AjaxSetting
>
</
AjaxSettings
>
</
telerik:RadAjaxManager
>
<
div
>
<
telerik:RadScriptManager
ID
=
"RadScriptManager1"
Runat
=
"server"
>
</
telerik:RadScriptManager
>
<
table
width
=
"100%"
>
<
tr
style
=
"width:100%"
>
<
td
style
=
"width:100%"
>
<%-- <
telerik:RadAjaxPanel
ID
=
"panel1"
runat
=
"server"
EnableAJAX
=
"true"
>--%>
<
telerik:RadPanelBar
ID
=
"RadPanelBar1"
onclientitemexpand
=
"OnClientItemExpand"
ExpandMode
=
"FullExpandedItem"
Width
=
"100%"
runat
=
"server"
>
<
Items
>
<
telerik:RadPanelItem
runat
=
"server"
Text
=
"Root RadPanelItem1"
PostBack
=
"true"
Value
=
"A"
>
</
telerik:RadPanelItem
>
<
telerik:RadPanelItem
runat
=
"server"
Text
=
"Root RadPanelItem2"
Value
=
"B"
>
</
telerik:RadPanelItem
>
<
telerik:RadPanelItem
runat
=
"server"
Text
=
"Root RadPanelItem3"
Value
=
"C"
>
</
telerik:RadPanelItem
>
</
Items
>
</
telerik:RadPanelBar
>
<%-- </
telerik:RadAjaxPanel
>--%>
</
td
>
</
tr
>
<
tr
>
<
td
>
<
asp:Button
ID
=
"post"
Text
=
"PostBack"
runat
=
"server"
/>
</
td
>
</
tr
>
<
tr
>
<
td
>
<
asp:Label
ID
=
"lblpost"
Text
=
"Load"
runat
=
"server"
></
asp:Label
>
</
td
>
</
tr
>
</
table
>
</
div
>
</
form
>
</
body
>
</
html
>
Looking forward your reply.
Kind regards,
Velkumar.