1

我正在使用 webforms 在 asp.net 网站上工作,由于某些未知原因,我遇到了奇怪的问题。

我在页面的不同区域有不同的横幅,在 MasterPage 的标题部分有一个常见的横幅,横幅按应有的方式显示,但问题是与横幅的链接不起作用。

下面是页面显示后生成的部分代码。

<div class="horizontalBannerBar">
<!-- Header Banner  -->
    <div class="pnlHeaderBanner" id="pnlHeaderBanner">

        <a target="_blank" href="http://abc.com" class="bannerlink" id="hypLnkHeaderBanner"><img style="border-width:0px;" src="../images/Banners/32dfe9ee-0832-4d89-8c61-45b0ef371f1f.jpg" id="imgHeaderBanner"></a>

</div>
<!-- Header Banner  -->
</div>

我使用 Panel 作为包装器,以便在横幅不存在的情况下隐藏横幅。

下面是我用来为超链接控件和图像控件赋值的代码

DataSet ds = DataProvider.GetTopBanner(ArticleID, PageID, IssueID, CategoryID, BannerLayoutPosition, LangID);
if (ds.Tables[0].Rows.Count > 0)
{
    imgHeaderBanner.ImageUrl = ds.Tables[0].Rows[0]["ImagePath"].ToString();
    hypLnkHeaderBanner.NavigateUrl = ds.Tables[0].Rows[0]["BannerURL"].ToString();
}
else
{
    imgHeaderBanner.Visible = false;
    pnlHeaderBanner.Visible = false;
}

实际的 .ASPX 页面代码

<div class="horizontalBannerBar">
<!-- Header Banner  -->
    <asp:Panel ID="pnlHeaderBanner" CssClass="pnlHeaderBanner" runat="server">
        <asp:HyperLink ID="hypLnkHeaderBanner" CssClass="bannerlink"  runat="server" Target="_blank">
            <asp:Image ID="imgHeaderBanner" runat="server" BorderWidth="0" />
        </asp:HyperLink>
    </asp:Panel>
<!-- Header Banner  -->
</div>

似乎 HTML 正在某个地方分解,但即使在小提琴上我也看不到它,它在 FF 和 Chrome 中不起作用,而链接在 IE 9 中起作用。

示例链接

4

2 回答 2

1

这是因为z-index: -999;在您的 CSS 中。如果您将其设置为 0,那么您的链接将起作用。

于 2013-02-21T08:59:18.733 回答
0

此外,<img />您在顶部发布的 HTML 示例中的标签也没有正确关闭。我怀疑这是由 ASP.NET 生成的实际 HTML。

<div class="horizontalBannerBar">
<!-- Header Banner  -->
    <div class="pnlHeaderBanner" id="pnlHeaderBanner">
        <a target="_blank" href="http://abc.com" class="bannerlink" id="hypLnkHeaderBanner">
            <img style="border-width:0px;" src="../images/Banners/32dfe9ee-0832-4d89-8c61-45b0ef371f1f.jpg" id="imgHeaderBanner" />
        </a>
    </div>
<!-- Header Banner  -->
</div>
于 2013-02-21T09:02:19.497 回答