こんにちは、asp.net プロジェクトで jquery 検索ドロップダウンを使用しようとしています。1日使用した後、いくつかの問題が発生しました。すでに調査を試みましたが、修正できません。以下では、私の問題を示すために小さなプロジェクトを作成します: https://app.box.com/s/u56motrehqii5g9spdbq
ページ フォーカスは、検索可能なドロップダウン スクリプトを配置するまで正常に機能します。入力してアイテムを検索して選択した後、Tab キーを押して下のテキスト ボックスにフォーカスしますが、フォーカスはグリッドビュー ヘッダー列に変わります。
マイページ
<%@ 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>
My .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>
ご不便をおかけして申し訳ありませんが、これはスタックオーバーフローでの私の最初の投稿です。