当按钮周围存在div时,链接按钮在IE中不起作用

时间:2011-11-04 18:11:19

标签: asp.net internet-explorer

这更像是我想知道为什么。链接按钮适用于Firefox和Chrome,但不适用于IE-8 编辑: 数字在IE-7中有效但不是8

现在,如果您删除

<div>
</div>

然后所有链接都正常工作。谁知道为什么。

AXPX PAGE

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="testPage.aspx.cs" Inherits="MyCompany.WEB.Pages.Secured.testPage" MasterPageFile="~/Layouts/Branding.Master" Theme="Default" %>
<%@ Register Assembly="DBauer.Web.UI.WebControls.DynamicControlsPlaceholder" Namespace="DBauer.Web.UI.WebControls" TagPrefix="DBWC" %>
<%@ Register TagPrefix="MyCompany" TagName="Toolbar" Src="~/Controls/ToolbarViewer.ascx" %>

<asp:Content ID="conToolbar" runat="server" ContentPlaceHolderID="cphToolbar">
<MyCompany:Toolbar ID="incToolbar" runat="server" />
</asp:Content>
<asp:Content ID="conHome" runat="server" ContentPlaceHolderID="cphMain">
<asp:ListView ID="lvProducts" runat="server" OnItemDataBound="lvProducts_ItemDataBound">

     <EmptyDataTemplate>There are no primary UITs</EmptyDataTemplate>
     <LayoutTemplate>
           <asp:PlaceHolder runat="server" ID="itemPlaceholder"></asp:PlaceHolder>
     </LayoutTemplate>

     <ItemTemplate>
      <asp:UpdatePanel ID="pnlMainUpdate" runat="server" UpdateMode="Conditional"  >
       <ContentTemplate >
         <asp:Repeater ID="rptLineItems" runat="server" OnItemDataBound="rptLineItems_ItemDataBound" >
           <ItemTemplate>
             <asp:Panel runat="server"  ID="pnLineItem" CssClass="Block ClearBoth UITOrderGroup Ledger OrderBorder FloatLeft UITOrderHeight">
             <asp:LinkButton  ID="lnkAddRow" runat="server" CssClass="IconButton Block Add" style="width:20px;" ToolTip="Add Row" CommandName="AddItem" OnCommand="lnkRow_Command" ></asp:LinkButton>
             </asp:Panel>
            </ItemTemplate>
         </asp:Repeater>
        </ContentTemplate>
       </asp:UpdatePanel>

     </ItemTemplate>
</asp:ListView>

<div class="floatRight">
    <asp:button ID="btnSubmit" runat="server" CssClass="DefaultButton floatRight" Text="Order" ToolTip="Click here to Order" Visible="true"></asp:button>
</div>

</asp:Content>

代码背后

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace MyCompany.WEB.Pages.Secured
{
    public partial class testPage : MyCompanyPageBase
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            lvProducts.DataSource = new List<int>() {1,2,4,5,6};
            lvProducts.DataBind();
        }
    protected void lvProducts_ItemDataBound(object sender, ListViewItemEventArgs e)
    {
        var dataItem = (ListViewDataItem)e.Item;
        var rptLineItems = (Repeater)dataItem.FindControl("rptLineItems");
        rptLineItems.DataSource = new List<int> { 1,2,3,4,5 };
        rptLineItems.DataBind();
    }
    protected void lnkRow_Command(object sender, CommandEventArgs commandEventArgs)
    { }
    protected void rptLineItems_ItemDataBound(object sender, RepeaterItemEventArgs e)
    {
    }
}
}

2 个答案:

答案 0 :(得分:0)

我怀疑您的样式导致LinkButton无法正确呈现。从CssClass中移除Panel属性,看看是否有所不同。

在调试此问题时,我会暂时删除UpdatePanel。没有AJAX,调试这些问题会更容易。

答案 1 :(得分:0)

事实证明,您必须在列表视图中为控件设置Text属性。

<ItemTemplate>
         <asp:Panel runat="server"  ID="pnLineItem" CssClass="Block ClearBoth UITOrderGroup Ledger OrderBorder FloatLeft UITOrderHeight">
         <asp:LinkButton  ID="lnkAddRow" runat="server" CssClass="IconButton Block Add" style="width:20px;" ToolTip="Add Row" CommandName="AddItem" OnCommand="lnkRow_Command" Text="" ></asp:LinkButton>
         </asp:Panel>
        </ItemTemplate>