Ajax下拉菜单工作在谷歌,但不是在ie9
本文关键字:ie9 谷歌 下拉菜单 工作 Ajax | 更新日期: 2023-09-27 18:15:23
我调用ajax下拉下拉内部中继器链接按钮。下拉列表在IE中填充,但该值没有被选中,因此itemcommand根本没有被触发。IE无法理解下拉值被选中,同样的事情在google
中工作得很好我的前端代码是: <asp:UpdatePanel ID="upPaymentRefund" runat="server" UpdateMode="Conditional" ChildrenAsTriggers="false" EnableViewState="true" >
<ContentTemplate>
<div class="row">
<div class="left heading-column">Cards on file:</div>
<div class="left form-wide-column-left">
<asp:Label ID="lblCardsonfile" runat="server"
Style="display:block; width:100px; padding:2px; padding-right:50px; font-family:Arial; font-size:11px;"
Text="Select card on file"></asp:Label>
<asp:Panel ID="panelCardsOnFile" runat="server"
CssClass="ContextMenuPanel" Style="display:none; visibility:hidden; ">
<asp:Repeater ID="rptCardsOnFile" runat="server" EnableViewState="true"
OnItemCommand="rptCardsOnFile_ItemCommand">
<ItemTemplate>
<asp:LinkButton ID="lblCardsonfile" runat="server" CausesValidation="false" style="z-index:20000"
CssClass="ContextMenuItem" CommandName="Select" OnClientClick="alert('hi')"
CommandArgument='<%# Eval("customerCards") %>'
Text='<%# Eval("UseInDropDown") %>' />
</ItemTemplate>
</asp:Repeater>
</asp:Panel>
<cc1:DropDownExtender ID="ddeCardsOnFile" runat="server"
DropDownControlID="panelCardsOnFile"
TargetControlID="lblCardsonfile" ></cc1:DropDownExtender>
<asp:HiddenField ID="hfCCInfo" Value="" runat="server" />
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
和我有以下事件在我的代码后面的文件:
绑定转发器Page_Load(对象发送者,EventArgs e){
if (!Page.IsPostBack)
{
using (dbUtil db = new dbUtil())
{
db.ConnectDB();
SqlCommand cmd = new SqlCommand("getCustomerCards " + customerID.ToString(), db.Connection);
SqlDataReader rdr = cmd.ExecuteReader();
if (rdr.HasRows)
{
//while (rdr.Read())
//{
//string data = rdr["customerCards"].ToString() ;
//string[] itemized = data.Split(new char[] { '|' });
//}
}
this.rptCardsOnFile.DataSource = rdr;
this.rptCardsOnFile.DataBind();
}
}
}
转发器的ItemCommand
protected void rptCardsOnFile_ItemCommand(object source,RepeaterCommandEventArgse){
this.ddlCardType.SelectedIndex = -1;
this.ddlExpMonth.SelectedIndex = -1;
this.ddlExpYear.SelectedIndex = -1;
}
这个问题似乎是由于缺乏DOCTYPE而发生的,因此IE将页面转换为IE5/IE7兼容模式。你可以像这样在webform中添加DOCTYPE -
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="$fileinputname$.aspx.cs" Inherits="$rootnamespace$.$classname$" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<html>
<head runat="server">
<title></title>
</head>
<body>
</body>
</html>
如果你遇到问题,可以在这里查看本教程