大家好, 我正在尝试在我的 asp.net 项目中使用 jquery 搜索下拉菜单。使用一天后,我遇到了一些问题,我已经尝试研究但无法修复。下面,我创建了一个小项目来演示我的问题: https ://app.box.com/s/u56motrehqii5g9spdbq
页面焦点正常工作,直到我放置可搜索的下拉脚本,在键入搜索并选择项目后,我按 Tab 将焦点放在下面的文本框,但焦点更改为我的 gridview 标题列。
我的页面
<%@ Page Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true"
CodeFile="Default.aspx.cs" Inherits="Default" Title="Untitled Page" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="Server">
<div>
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:DropDownList runat="server" ID="cboData" TabIndex="1">
<Items>
<asp:ListItem Value="A"></asp:ListItem>
<asp:ListItem Value="B"></asp:ListItem>
</Items>
</asp:DropDownList>
<asp:TextBox runat="server" ID="txtData" TabIndex="2"></asp:TextBox>
<asp:GridView ID="GridView1" runat="server" AllowSorting="True" AutoGenerateColumns="True">
</asp:GridView>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</asp:Content>
我的 .aspx.cs(仅用于输入样本数据)
#region
using System;
using System.Data;
using System.Web.UI;
#endregion
public partial class Default : Page
{
protected void Page_Load(object sender, EventArgs e)
{
DataTable dt = new DataTable();
dt.Columns.Add("Column1");
dt.Columns.Add("Column2");
dt.Rows.Add(1, "CCC");
dt.Rows.Add(2, "DDD");
GridView1.DataSource = dt;
GridView1.DataBind();
}
}
我的母版页
<%@ Master Language="C#" AutoEventWireup="true" CodeFile="MasterPage.master.cs" Inherits="MasterPage" %>
<!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">
<script src="JS/jquery-1.4.2.min.js" type="text/javascript"></script>
<script src="JS/jquery.searchabledropdown-1.0.8.min.js" type="text/javascript"></script>
<script language="javascript">
var flag = false;
// Load for page, run once in ajax, run every page load in normal page
$(document).ready(function () {
$("select").searchable();
});
// Load run each ajax callback
function pageLoad() {
if (flag==false) {
$("select").searchable();
} else {
flag = false;
}
};
</script>
<head runat="server">
<title>Untitled Page</title>
<asp:ContentPlaceHolder ID="head" runat="server">
</asp:ContentPlaceHolder>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">
</asp:ContentPlaceHolder>
</div>
</form>
</body>
</html>
请帮忙,不便之处请见谅,这是我在stackoverflow的第一篇文章。