c# - 未显示 ASP.Net 菜单栏

标签 c# asp.net menubar

我在 ASP.net 中为我的站点管理员构建了一个菜单栏:

<div class="MenuBar">
        <asp:ContentPlaceHolder ID="MainContent" runat="server">
            <asp:Menu ID="menuBar" runat="server" Orientation="Vertical" Width="100%">
                <DynamicHoverStyle CssClass="DynamicHover" />
                <DynamicMenuItemStyle CssClass="DynamicMenuItem" />
                <DynamicSelectedStyle CssClass="DynamicHover" />
                <StaticHoverStyle CssClass="staticHover" />
                <StaticMenuItemStyle CssClass="StaticMenuItem" ItemSpacing="1px" />
                <StaticSelectedStyle CssClass="staticHover" />
            </asp:Menu>
        </asp:ContentPlaceHolder>
    </div>

代码隐藏:

public partial class SiteMaster : System.Web.UI.MasterPage
{

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        getMenu();
    }
}


private void getMenu()
{
    Menu menuBar = new Menu();
    SqlConnection con = new SqlConnection();
    con.ConnectionString = "server=(local);database=PhilipsMaterials;Integrated Security=SSPI;";
    con.Open();
    DataSet ds = new DataSet();
    DataTable dt = new DataTable();
    string sql = "Select [Material Name] from Materials";
    SqlDataAdapter da = new SqlDataAdapter(sql, con);
    da.Fill(ds);
    dt = ds.Tables[0];
    DataRow[] drowpar = dt.Select();
    String s = "sss";
    foreach (DataRow dr in drowpar)
    {
        menuBar.Items.Add(new MenuItem(dr["Material Name"].ToString()));
    }

    con.Close();

}

由于某种原因,当我在浏览器上查看网站时,菜单没有显示。 有人知道为什么吗? 谢谢。

最佳答案

您从菜单中实例化一个新对象,然后不要将其等同于现有菜单,您不需要实例化一个新对象,只需将您的功能替换为以下:

    private void getMenu()
{
   // Menu menuBar = new Menu();
    SqlConnection con = new SqlConnection();
    con.ConnectionString = "server=(local);database=PhilipsMaterials;Integrated Security=SSPI;";
    con.Open();
    DataSet ds = new DataSet();
    DataTable dt = new DataTable();
    string sql = "Select [Material Name] from Materials";
    SqlDataAdapter da = new SqlDataAdapter(sql, con);
    da.Fill(ds);
    dt = ds.Tables[0];
    DataRow[] drowpar = dt.Select();
    String s = "sss";
    foreach (DataRow dr in drowpar)
    {
        menuBar.Items.Add(new MenuItem(dr["Material Name"].ToString()));
    }

    con.Close();

}
}

并从 Page_PreRender 而不是从 Page_Load 调用它。

关于c# - 未显示 ASP.Net 菜单栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13229371/

相关文章:

c# - 将 js 值作为参数发送给 js 函数

c# - 从数据库 SQLite C# 服务堆栈读取 SQL 数据(百万条记录)的最快方法是什么

c# - 有什么方法可以将 .dll 文件转换为 .cs 文件

javascript - JS, CSS 菜单栏切换

qt - 如何将 QProgressBar 添加到 QMenuBar?

html - 在页眉上方留出宽阔的空间

c# - Winforms 中的后台工作人员不更新 TextBox

c# - C#条件正则表达式替换和电话格式化

c# - 在 JavaScript/jQuery 中显示更多/更少而不剥离 Html 标签

c# - AppDomain.CurrentDomain.UnhandledException 没有被调用