Quote:
Originally Posted by Imar
Sorry; it's an old joke. It's better read (and funnier) as follows:
> Exactly!
>> How do you know? I didn't post any code
>>> The error is on line 11
In other words: please post the relevant code for your user control and the part of the page where you include it. Without it, we can't say anything useful about your problem.
Cheers,
Imar
|
User Control is a Menu:
UI Code (MenuControl.aspx):
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="MenuControl.ascx.cs" Inherits="TRS.TRSApp.UserControls.MenuControl" %>
<script type="text/javascript" language="javascript"></script>
<body onload='hide();'>
<form name="navigationForm" method="post"
action="/bagfinder/navigateApp.do">
<input type="hidden" name="selectedNavButton" value="4" />
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr><td><img src="../images/tsca-narrow-banner.jpg"></td><br /></tr>
<tr width="100%" style="background-color:000099">
<td width="100%" style="background-color:000099">
<span id="navbar">
<asp:Menu ID ="mnuMenu" runat ="server" Orientation="Horizontal"
StaticMenuStyle-BackColor="#000099" StaticMenuItemStyle-ForeColor="White"
DynamicMenuItemStyle-BackColor="#000099" DynamicMenuItemStyle-ForeColor="White"
onmenuitemclick="mnuMenu_MenuItemClick" >
</asp:Menu>
</span>
</td>
</tr>
</table>
</form>
</body>
Code Behind (MenuControl.aspx.cs)
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Data.SqlClient;
namespace TRS.TRSApp.UserControls
{
public partial class MenuControl : System.Web.UI.UserControl
{
SqlConnection objSqlConnection = new SqlConnection("Data Source=hydhtc24115L;Initial Catalog=TSCA;Integrated Security=SSPI");
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
objSqlConnection.Open();
PopulateRootLevel();
}
}
private void PopulateRootLevel()
{
SqlCommand objCommand = new SqlCommand(@"select Id,Title,(select count (*) from TSCA_MenuList where ParentId = menu.Id)
as ChildNodeCount from TSCA_MenuList menu where ParentId is null", objSqlConnection);
SqlDataAdapter objDataAdapter = new SqlDataAdapter(objCommand);
DataTable dt = new DataTable();
objDataAdapter.Fill(dt);
PopulateNodes(dt,mnuMenu.Items);
}
private void PopulateSubLevel(int parentId, MenuItem parentMenu)
{
SqlCommand objCommand = new SqlCommand(@"select Id,Title,(select count (*) from TSCA_MenuList where ParentId = menu.Id)
as ChildNodeCount from TSCA_MenuList menu where ParentId =" + parentId + "", objSqlConnection);
SqlDataAdapter objDataAdapter = new SqlDataAdapter(objCommand);
DataTable dt = new DataTable();
objDataAdapter.Fill(dt);
PopulateNodes(dt,parentMenu.ChildItems);
}
private void PopulateNodes(DataTable dt, MenuItemCollection items)
{
foreach(DataRow dr in dt.Rows)
{
MenuItem item = new MenuItem();
item.Text = dr["Title"].ToString();
item.Value = dr["Id"].ToString();
items.Add(item);
// Node with child nodes
bool flag = ((int)(dr["ChildNodeCount"]) > 0);
if (flag)
{
menuCreate(item);
}
}
}
private void menuCreate(MenuItem menu)
{
MenuEventArgs e = new MenuEventArgs(menu);
PopulateSubLevel(Int32.Parse(e.Item.Value),e.Item) ;
}
protected void mnuMenu_MenuItemClick(object sender, MenuEventArgs e)
{
switch(e.Item.Text)
{
case "Home":
MenuItem HomeItem1 = new MenuItem();
MenuItem HomeItem2 = new MenuItem();
MenuItem HomeItem3 = new MenuItem();
MenuItem HomeItem4 = new MenuItem();
MenuItem HomeItem5 = new MenuItem();
MenuItem HomeItem6 = new MenuItem();
MenuItem HomeItem7 = new MenuItem();
MenuItem HomeItem8 = new MenuItem();
MenuItem HomeItem9 = new MenuItem();
HomeItem1.Text = "Home";
HomeItem2.Text = "Import";
HomeItem3.Text = "Export";
HomeItem4.Text = "Assessment";
HomeItem5.Text = "Search";
HomeItem6.Text = "Reports";
HomeItem7.Text = "Help";
HomeItem8.Text = "Export Summary";
HomeItem9.Text = "Import Summary";
mnuMenu.Items.Clear();
mnuMenu.Items.AddAt(0, HomeItem1);
mnuMenu.Items.AddAt(1, HomeItem2);
mnuMenu.Items.AddAt(2, HomeItem3);
mnuMenu.Items.AddAt(3, HomeItem4);
mnuMenu.Items.AddAt(4, HomeItem5);
mnuMenu.Items.AddAt(5, HomeItem6);
mnuMenu.Items[5].ChildItems.AddAt(0, HomeItem8);
mnuMenu.Items[5].ChildItems.AddAt(1, HomeItem9);
mnuMenu.Items.AddAt(6, HomeItem7);
return;
case "Import":
MenuItem ImportItem1 = new MenuItem();
MenuItem ImportItem2 = new MenuItem();
MenuItem ImportItem3 = new MenuItem();
ImportItem1.Text = "Home";
ImportItem2.Text = "Import";
ImportItem3.Text = "Help";
mnuMenu.Items.Clear();
mnuMenu.Items.AddAt(0, ImportItem1);
mnuMenu.Items.AddAt(1, ImportItem2);
mnuMenu.Items.AddAt(2, ImportItem3);
return;
case "Export":
MenuItem ExportItem1 = new MenuItem();
MenuItem ExportItem2 = new MenuItem();
MenuItem ExportItem3 = new MenuItem();
ExportItem1.Text = "Home";
ExportItem2.Text = "Export";
ExportItem3.Text = "Help";
mnuMenu.Items.Clear();
mnuMenu.Items.AddAt(0, ExportItem1);
mnuMenu.Items.AddAt(1, ExportItem2);
mnuMenu.Items.AddAt(2, ExportItem3);
return;
case "Assessment":
MenuItem AssessItem1 = new MenuItem();
MenuItem AssessItem2 = new MenuItem();
MenuItem AssessItem3 = new MenuItem();
AssessItem1.Text = "Home";
AssessItem2.Text = "Assessment";
AssessItem3.Text = "Help";
mnuMenu.Items.Clear();
mnuMenu.Items.AddAt(0, AssessItem1);
mnuMenu.Items.AddAt(1, AssessItem2);
mnuMenu.Items.AddAt(2, AssessItem3);
return;
case "Search":
MenuItem SearchItem1 = new MenuItem();
MenuItem SearchItem2 = new MenuItem();
MenuItem SearchItem3 = new MenuItem();
SearchItem1.Text = "Home";
SearchItem2.Text = "Search";
SearchItem3.Text = "Help";
mnuMenu.Items.Clear();
mnuMenu.Items.AddAt(0, SearchItem1);
mnuMenu.Items.AddAt(1, SearchItem2);
mnuMenu.Items.AddAt(2, SearchItem3);
return;
case "Reports":
MenuItem ReportsItem1 = new MenuItem();
MenuItem ReportsItem2 = new MenuItem();
MenuItem ReportsItem3 = new MenuItem();
MenuItem ReportsItem4 = new MenuItem();
MenuItem ReportsItem5 = new MenuItem();
ReportsItem1.Text = "Home";
ReportsItem2.Text = "Reports";
ReportsItem3.Text = "Help";
ReportsItem4.Text = "ExportSummary";
ReportsItem5.Text = "ImportSummary";
mnuMenu.Items.Clear();
mnuMenu.Items.AddAt(0, ReportsItem1);
mnuMenu.Items.AddAt(1, ReportsItem2);
mnuMenu.Items[1].ChildItems.AddAt(0, ReportsItem4);
mnuMenu.Items[1].ChildItems.AddAt(1, ReportsItem5);
mnuMenu.Items.AddAt(2, ReportsItem3);
return;
case "Help":
MenuItem HelpItem1 = new MenuItem();
MenuItem HelpItem2 = new MenuItem();
HelpItem1.Text = "Home";
HelpItem2.Text = "Help";
mnuMenu.Items.Clear();
mnuMenu.Items.AddAt(0, HelpItem1);
mnuMenu.Items.AddAt(1, HelpItem2);
return;
}
}
}
}
Used in Reports UI as:
<%@ Register Src="~/UserControls/MenuControl.ascx" TagName="Menu" TagPrefix="ucMenu" %>
<form runat="server">
<ucMenu:Menu ID = "hdrmenu" runat="server" />
</form>
Please suggest?
Thanks