2012-12-10 34 views
0

这是我的ascx控件页代码无法呈现ascx控件页面的html

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="Menu.ascx.cs" Inherits="CrossQueue.Web.Menu" %> 
<asp:Label ID="lblMenu" runat="server"></asp:Label> 

这是我的C#代码

private void CreateMenu() 
    { 
     StringBuilder menuHtml = new StringBuilder(); 
     int profileId = 0; 
     MenuBL menuManager = new MenuBL(); 
     DataTable dtMenu = null; 
     if (Session["USR_ID"] != null) 
     { 
      profileId = Convert.ToInt32(Session["USR_PROFILE"]); 
      dtMenu = menuManager.GetAllMenuItemsForProfile(profileId); 
      if (dtMenu != null && dtMenu.Rows.Count > 0) 
      { 
       menuHtml.Append("<table id='tblMenu' cellpadding='0' cellspacing='0' width='939' border='0' align='center'>"); 
       menuHtml.Append("<tr>"); 
       menuHtml.Append("<td align='left'>"); 
       menuHtml.Append(Convert.ToString(Session["USR_USERNAME"])); 
       menuHtml.Append("</td>"); 

       menuHtml.Append("<td width='739' valign='middle' align='right' style='height: 30px;'>"); 
       foreach (DataRow dr in dtMenu.Rows) 
       { 
        if (dr["MenuName"].ToString() == "Profile") 
        { 
         menuHtml.Append("<img src='/images/home_icon.jpg' width='25' height='25' align='middle' /><a href='AllProfile.aspx>Profile</a>&nbsp;"); 
        } 
        else if (dr["MenuName"].ToString() == "User") 
        { 
         menuHtml.Append("<img src='/images/home_icon.jpg' width='25' height='25' align='middle' /><a href='AllUsers.aspx>User</a>&nbsp;"); 
        } 
       } 
       menuHtml.Append("</td>"); 
       menuHtml.Append("</tr>"); 
       menuHtml.Append("</table>"); 
      } 
      lblMenu.Text = menuHtml.ToString(); 
     } 
    } 

当我加载网页我只看到打印成HTML代码文字而不是渲染。可以指出任何一个可能出错的地方

+0

什么是你所得到的确切的错误!可以请你提供详细信息! – Luv

+0

@Prahalad其实ascx控制页面 – iJade

+0

是兄弟!对不起!!! – Luv

回答

3

你可以让一个div服务器可以访问assigning ID并设置runat="server"而不是标签并设置我ts InnerHTML = menuHtml.ToString();

<div id="div1" runat="server" ></div> 

div1.InnerHTML = menuHtml.ToString(); 
+1

没有必要引入额外的'div'来做到这一点。 – Rawling

2

更改标签

<asp:Label ID="lblMenu" runat="server"></asp:Label> 

以文字为

<asp:Literal ID="lblMenu" runat="server" EnableViewState="false"></asp:Literal>