Hi guys,
I'm having a problem with RadPanelBar. It is refreshing the whole page when I'm using it in SharePoint.
I did a sample test application without using SharePoint and it is working properly (not refreshing the whole page).
Below is the sample I create: (Note that this sample is the asp.net, not the SharePoint code as it will be the same).
Kindly highlight or specify what I did wrong or what I need to do in able to make it work on SharePoint.
Please be kind as I am not a frequent forum poster. Thanks in advance for the help/support.
### Navigation Control: START ###
=== ASCX: START ===
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="navigation.ascx.cs" Inherits="AJAXEnabledWebApplication1.navigation" %>
<%@ Register Assembly="Telerik.Web.UI, Version=2008.2.826.20, Culture=neutral, PublicKeyToken=121fae78165ba3d4"
Namespace="Telerik.Web.UI" TagPrefix="rad" %>
<rad:RadPanelBar runat="server" ID="radPanelBar1" Skin="Office2007" ExpandMode="SingleExpandedItem" Width="100%">
</rad:RadPanelBar>
=== ASCX: END ===
=== ASCX.CS: START ===
namespace AJAXEnabledWebApplication1
{
public partial class navigation : System.Web.UI.UserControl
{
public EventHandler OnItemClick;
protected void Page_Load(object sender, System.EventArgs e)
{
if (!this.IsPostBack)
{
radPanelBar1.DataSource = this.GetData();
radPanelBar1.DataTextField = "Desc";
radPanelBar1.DataValueField = "Id";
radPanelBar1.DataBind();
}
}
protected override void OnInit(System.EventArgs e)
{
radPanelBar1.ItemClick += radPanelBar1_ItemClick;
}
private void radPanelBar1_ItemClick(object sender, Telerik.Web.UI.RadPanelBarEventArgs e)
{
if (OnItemClick != null)
{
OnItemClick(this, new navigation.NavigationEventArgs(e.Item.Value));
}
}
private DataTable GetData()
{
DataTable dt = new DataTable();
dt.Columns.Add("Id");
dt.Columns.Add("Desc");
for (int i = 0; i < 5; i++)
{
DataRow newRow = dt.NewRow();
newRow["Id"] = i.ToString();
newRow["Desc"] = i.ToString() + " Description";
dt.Rows.Add(newRow);
}
return dt;
}
#region <<<EventHandler>>>
public delegate void EventHandler(object sender, NavigationEventArgs e);
public class NavigationEventArgs : System.EventArgs
{
private string _id = string.Empty;
public NavigationEventArgs()
{
_id = string.Empty;
}
public NavigationEventArgs(string id)
{
_id = id;
}
public string Id
{
get { return _id; }
set { _id = value; }
}
}
#endregion
}
}
=== ASCX.CS: END ===
### Navigation Control: END ###
### ACTUAL PAGE: START ###
=== ASPX: START ===
<%@ Page Language="C#" AutoEventWireup="true" Codebehind="Default.aspx.cs" Inherits="AJAXEnabledWebApplication1._Default" %>
<%@ Register Src="navigation.ascx" TagName="Navigation" TagPrefix="navigationUC" %>
<%--<%@ Register Src="~/layouts/_controltemplates/navigation.ascx" TagName="Navigation" TagPrefix="navigationUC" %>--%>
<!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>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server" />
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<div>
<table style="width: 100%; height=100%">
<tr>
<td>
<navigationUC:Navigation runat="server" ID="navigationUC1"></navigationUC:Navigation>
</td>
</tr>
<tr>
<td height="100%">
<asp:ListBox runat="server" ID="listBox" Height="400px"></asp:ListBox>
</td>
</tr>
</table>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</form>
</body>
</html>
=== ASPX: END===
=== ASPX.CS: START===
namespace AJAXEnabledWebApplication1
{
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected override void OnInit(EventArgs e)
{
navigationUC1.OnItemClick += navigationUC1_OnItemClick;
}
private void navigationUC1_OnItemClick(object sender, navigation.NavigationEventArgs e)
{
listBox.Items.Add(e.Id);
}
}
}
=== ASPX.CS: END ===
### ACTUAL PAGE: END ###