2013-05-01 112 views
0

我有这段代码。此代码是我的菜单项的一部分:asp:图片不显示图片

<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

尝试img_lessons.ImageUrl =“〜/ images/lessons.png”;而不是img_lessons.ImageUrl =“images/lessons.png”; – Rahul 2013-05-01 07:57:14

+0

你在哪里/如何设置每个链接的文本内容?我在你提到的源代码中看到“本科”,“毕业生”和“教训”,但你的服务器标记标记和代码隐藏都不会显示你设置的位置... – 2013-05-01 07:57:17

+0

@TiesonT我是根据语言选择从外部文件中获取文本。 – zkanoca 2013-05-01 08:01:53

回答

2

当你这样做:

hpl_lessons.Text = lang["MENU_LESSONS"]; 

你是从超链接内消灭任何和所有的标记。

编辑:因为它看起来像你已经有一个<em>标签,你已经做出了服务器的标签,这条线:

em_lessons.InnerHtml = lang["MENU_LESSONS"]; 

应该已经被设置可视文本,所以,真的,你只应必须删除上面提到的行。

+0

谢谢。你指出了这个问题。现在我要去寻找一个解决方案, – zkanoca 2013-05-01 08:14:21

+0

那么好吧!在评论这个以及其他这样的行后,我的问题已经消失。再次感谢 – zkanoca 2013-05-01 08:16:47

1

您正在清理时要设置为.text郎[“MENU_LESSONS”]的超级链接的innerHTML

什么,你需要做的是改变你的标记如下:

<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"]; 
+0

+1:是的你是对的。但不需要额外的文字。 – zkanoca 2013-05-01 09:36:31