我有一个ASP ListView
,在运行时以编程方式绑定到DataSource
。
Firefox和Chrome浏览器存在的问题是,只有ListView的第一条记录导致SelectedIndexChanged / Changing事件触发。所有其他选定的记录(第2,第3,第4记录等)仅导致回发,而不会触发SelectedIndecChanged / Changing事件。
奇怪的是,Internet Explorer会在每条记录(而不仅仅是第一条记录)上触发SelectedIndexChanged / Changing事件。
有谁知道我可能做错了什么?
<asp:ListView ID="lvUsersShoppingCart" runat="server" DataKeyField="ProductID" DataKeyNames="ProductID" OnSelectedIndexChanged="lvUsersShoppingCart_SelectedIndexChanged">
<ItemTemplate>
<div class="top-buffer">
<div class="row">
<div class="col-sm-3">
<asp:Image ID="imgProductThumbnail" class="img-responsive" runat="server" ImageUrl='<%# Eval("ThumbnailImageLocation")%>' />
</div>
<div class="col-sm-9">
<form class="form-horizontal">
<div class="form-group">
<strong>
<asp:Label ID="lblProductName" runat="server" Text='<%# Eval("ProductName")%>' /></strong>
</div>
<div class="form-group">
<asp:Label ID="lblProductShortDescription" runat="server" Text='<%# Eval("ProductShortDescription")%>' />
</div>
<div class="form-group">
$<asp:Label ID="lblProductPrice" runat="server" Text='<%# Eval("ProductPrice")%>' />
(AUD)
</div>
<div class="form-group hidden">
<div class="col-sm-3">
<label for="lblProductQuantity" class="control-label">Quantity</label>
</div>
<asp:Label ID="lblProductQuantity" class="input-sm" runat="server" Text='<%# " x " + Eval("ProductQuantity").ToString%>'></asp:Label>
<asp:Button ID="btnEditQuantity" runat="server" Text="Change Qty" CssClass="btn btn-link" CommandName="Edit" />
</div>
<div class="form-group">
<asp:Button ID="btnDelete" runat="server" Text="Remove" CssClass="btn btn-danger" CommandName="Select" />
</div>
</form>
</div>
</div>
</div>
</ItemTemplate>
</asp:ListView>
答案 0 :(得分:0)
问题是由form
:
ItemTemplate
元素引起的
<form class="form-horizontal">
...
</form>
如果您将其替换为其他类型的容器(通常为div
),则可以获得正确的行为:
<div class="form-horizontal">
...
</div>