我正在使用普通的html 4.01控件将经典的asp页面转换为asp.net 2.0 web
页。虽然我能用等效的asp.net控件替换大多数控件,但
但我面临着控件样式的问题。对照出了
对齐即使他们使用相同的样式信息。
前:
旧代码
<p class="menuitem" id="menu01">
<a target="" href="Category.aspx?ccat_id=152&language=en-GB&publication=3">
<img height="7" width="12" src="Webroot/visual/arrow-navi-right.gif" border="0" alt="">Item 1</a>
</p>
新替换
<p class="menuitem" id="menu01">
<asp:LinkButton ID="LinkButtonManual" runat="server" PostBackUrl="~/Category.aspx?ccat_id=152&language=en-GB&publication=3">
<asp:Image id="imgLinkManual" runat="server" Width="12" Height="7" ImageUrl="~/visual/arrow-navi-right.gif" ImageAlign="Left"/>
<asp:Label ID="LblManual" runat="server" Text="Item 1"/>
</asp:LinkButton>
</p>
在这种情况下,理想情况下,图像和标签应该出现类似
的内容
但实际上它显示为
由于
上的图像没有处理(因为它们只是图标)服务器端。我应该限制使用旧的方式,即使用旧的HTML控件。
非常感谢你的时间。
答案 0 :(得分:0)
ASP.NET图像呈现为HTML图像,因此您应该检查ASP.NET图像的源代码,而不是ASPX代码。然后,您将能够比较两段代码,看看有什么不同。
但是,查看代码后,我可以在ASP.NET Image上看到一个ImageAlign
属性,您在原始HTML图像上没有该属性。
同样在原始HTML代码中,您只需拥有Item 1
,而在ASP.NET代码中,您拥有一个带有Item 1
文本值的ASP.NET标签。 label
呈现为span
标记。相反,您应该使用Literal
控件,因为这不会呈现任何HTML标记。
尝试更改为:
<asp:LinkButton ID="LinkButtonManual" runat="server" PostBackUrl="~/Category.aspx?ccat_id=152&language=en-GB&publication=3">
<asp:Image id="imgLinkManual" runat="server" Width="12" Height="7" ImageUrl="~/visual/arrow-navi-right.gif" /><asp:Literal ID="LtlManual" runat="server" Text="Item 1" />
</asp:LinkButton>
答案 1 :(得分:0)
如果您在ASP控件中使用ImageAlign="Left"
,则与在普通HTML align="left"
标记中使用<img>
相同。可以在此处找到该标记的行为:
http://www.htmlcodetutorial.com/images/_IMG_ALIGN.html
我认为当您不需要服务器端交互时,最好使用html <img>
标记,但您也可以删除ImageAlign="left"
并获得相同的结果。
答案 2 :(得分:0)
实际上这很有用。在段落级别添加text对齐的样式属性。
块内的 style =“text-align:left”
<p class="menuitem" id="menu01" style="text-align:left">
<asp:LinkButton ID="LinkButtonManual" runat="server" PostBackUrl="~/Category.aspx?ccat_id=152&language=en-GB&publication=3">
<img Width="12" Height="7" alt="" src="visual/arrow-navi-right.gif.gif">
<asp:Label ID="LblManual" runat="server" Text="Item 1"/>
</asp:LinkButton>
</p>
如果我遵循这种方法,你们是否会发现任何与性能/编码风格相关的问题?