我有这个代码。此代码是我的菜单项的一部分:
<li class="" id="fifth-li">
<ul style="visibility: hidden; display: none;" id="fifth-ul">
<li><asp:HyperLink ID="hpl_undergraduate" runat="server"></asp:HyperLink></li>
<li><asp:HyperLink ID="hpl_graduate" runat="server"></asp:HyperLink></li>
</ul>
<asp:HyperLink ID="hpl_lessons" runat="server">
<asp:Image ID="img_lessons" runat="server" />
<strong></strong>
<em id="em_lessons" runat="server"></em>
</asp:HyperLink>
</li>
这是我的.cs代码文件的一部分:
em_lessons.InnerHtml = lang["MENU_LESSONS"];
hpl_lessons.Text = lang["MENU_LESSONS"];
hpl_undergraduate.Text = lang["MENU_UNDERGRADUATE"];
hpl_graduate.Text = lang["MENU_GRADUATE"];
hpl_lessons.NavigateUrl = "lessons.html";
hpl_undergraduate.NavigateUrl = "lessons-801.html";
hpl_graduate.NavigateUrl = "lesson-802.html";
img_lessons.ImageUrl = "images/lessons.png"; //Here the image url is defined.
此代码适用于我的网页菜单。还有一些这样的项目。我将代码添加到代码隐藏的img_lessons
对象上。但在运行页面后,我得到了这段代码:
<li class="" id="fifth-li">
<ul style="visibility: hidden; display: none;" id="fifth-ul">
<li>
<a id="MainContent_hpl_undergraduate" href="lesson-801.html">
Undergraduate
</a>
</li>
<li>
<a id="MainContent_hpl_graduate" href="lesson-802.html">
Graduate
</a>
</li>
</ul>
<a id="MainContent_hpl_lessons" href="lessons.html">
Lessons
</a>
</li>
我在想,如果我在img_lessons
之间提取<asp:HyperLink></asp:HyperLink>
,则会显示图像。但没办法。我已将代码更改为更清洁。
重点不在于图像路径,而在于一些程序性的无能/不便。因为我在浏览器的代码视图中看不到<img id="MainContent_img_lessons" ... />
代码。
你可以看到我的图像看起来不像。你怎么看?
问候。
答案 0 :(得分:2)
执行此操作时:
hpl_lessons.Text = lang["MENU_LESSONS"];
您正在消除超链接内部的任何和所有标记。
编辑:因为看起来您已经有一个<em>
标记,您已经建立了服务器标记,所以这一行:
em_lessons.InnerHtml = lang["MENU_LESSONS"];
应该已经设置了可见文本了,所以,实际上,您只需要删除上面提到的那一行。
答案 1 :(得分:1)
当您将.Text设置为lang时,您正在清除超链接innerHTML [&#34; MENU_LESSONS&#34;]
您需要做的是更改您的标记,如下所示:
<asp:HyperLink ID="hpl_lessons" runat="server">
<asp:Image ID="img_lessons" runat="server" />
<strong><asp:Literal ID="lit_lessons"/></strong>
<em id="em_lessons" runat="server"></em>
</asp:HyperLink>
然后更改您的代码,使其显示为
lit_lessons.Text = lang["MENU_LESSONS"];