Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# asp.net Gridview中多个文本框的jquery自动完成_C#_Javascript_Jquery_Asp.net_Gridview - Fatal编程技术网

C# asp.net Gridview中多个文本框的jquery自动完成

C# asp.net Gridview中多个文本框的jquery自动完成,c#,javascript,jquery,asp.net,gridview,C#,Javascript,Jquery,Asp.net,Gridview,我有asp.net Gridview,默认情况下至少有15行带有文本框 aspx WevService.axms 现在,例如,当我在文本框1中键入Engine Work并选择由jQuery AutoCompleteTengine Work填充的值时,然后第二次键入其他文本框文本框2。这只是给我选择发动机工作选项。。这意味着在选择jQuery自动完成填充的任何值后,我无法在其他文本框中选择任何其他值。。。。 示例:-见下图 正如你所见,我输入了Genral工作,但它仍然填充了jquery Auto

我有asp.net Gridview,默认情况下至少有15行带有文本框

aspx

WevService.axms

现在,例如,当我在文本框1中键入Engine Work并选择由jQuery AutoCompleteTengine Work填充的值时,然后第二次键入其他文本框文本框2。这只是给我选择发动机工作选项。。这意味着在选择jQuery自动完成填充的任何值后,我无法在其他文本框中选择任何其他值。。。。 示例:-见下图

正如你所见,我输入了Genral工作,但它仍然填充了jquery AutoComplete中以前的值引擎工作,这是我不想要的

如何使用jQuery按CSS类查找文本框

类似这样的东西是通过在GridView中使用jQuery来查找TextBox id的唯一方法,但我需要通过Css类来查找TextBox

var $arrT = $('#<%=gv_Others.ClientID %>').find('input:text[id$="txtEmp"]');

将脚本块更改为:

$(document).ready(function() {
    // This selects all inputs inside the table with the txtE class and applies
    // the autocomplete function to them
    $('table[id$="gv_Others"] input.txtE').autocomplete({
        source: function(request, response) {
            $.ajax({
                url: "WebService.asmx/GetAutoCompleteData",
                type: "POST",
                dataType: "json",
                contentType: "application/json; charset=utf-8",
                data: "{ 'txt1' : '" + request.term + "'}", 
                dataFilter: function(data) { return data; },
                success: function(data) {
                    response($.map(data.d, function(item) {
                        return {
                            label: item,
                            value: item
                        }
                    }))
                    //debugger;
                },
                error: function(result) {
                    alert("Error");
                }
            });
        },
        minLength: 1,
        delay: 1000
    });
});
看看数据:在ajax帖子中,它使用request.term,我更改了选择器

jquery的问题是这一行:

data: "{ 'txt1' : '" + $($arrT).val() + "'}",

这将始终返回数组的第一个值,即第一个文本框,因此它始终将第一个值作为搜索文本提交给您的Web服务。

hi@Zach在您回答之前,我已经尝试过了。。。它还在其他文本框中填充以前选择的值。如果您想使用筛选器表达式和筛选器,其中val==@zech如果可以使用筛选器表达式,那么为什么不将第一个文本框的值始终提交给您的Web服务。这是因为您正在将$$arrT.val传递给$.ajax帖子。@zech感谢您给我宝贵的时间,它解决了我的问题。感谢您更新问题。有时候我的眼睛读什么是1+1?我的大脑将其解释为内布拉斯加州的首都是什么?…我使用Asp.Net通用处理程序执行SQL,并将输入的文本作为参数传递给SQL命令。它返回自动完成输入文本的文本框的响应。
using System;
using System.Web;
using System.Data.SqlClient;
using System.Configuration;
using System.Text;
using System.Collections.Generic;
using System.Web.Script.Serialization;

namespace PlatForm_RollUp
{
    /// <summary>
    /// Summary description for SearchDPN
    /// </summary>
    public class SearchDPN : IHttpHandler
    {

        public void ProcessRequest(HttpContext context)
        {
            string prefixText = context.Request.QueryString["term"];
            if (string.IsNullOrEmpty(prefixText)) { prefixText = "NA"; }
            using (SqlConnection conn = new SqlConnection())
            {
                conn.ConnectionString = ConfigurationManager
                        .ConnectionStrings["PPN_ConnectionString"].ConnectionString;
                using (SqlCommand cmd = new SqlCommand())
                {
                    cmd.CommandText = "select DPN_Key, DPN, Item_Desc from Customer.DIM.PPN WHERE " +
                        "DPN like @SearchText+'%'";
                    cmd.Parameters.AddWithValue("@SearchText", prefixText);
                    cmd.Connection = conn;
                    //StringBuilder sb = new StringBuilder();
                    List<string> _dpn = new List<string>();
                    conn.Open();
                    using (SqlDataReader sdr = cmd.ExecuteReader())
                    {
                        while (sdr.Read())
                        {
                            //sb.Append(string.Format("{0} - {1}", sdr["DPN"], sdr["Item_Desc"], Environment.NewLine));
                            _dpn.Add(sdr["DPN"].ToString() +" - " +sdr["Item_Desc"].ToString());
                        }
                    }
                    conn.Close();
                    context.Response.Write(new JavaScriptSerializer().Serialize(_dpn));
                }
            }
        }

        public bool IsReusable
        {
            get
            {
                return false;
            }
        }
    }
}


***************************
 <script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.10.0.min.js" type="text/javascript"></script>
        <script src="http://ajax.aspnetcdn.com/ajax/jquery.ui/1.9.2/jquery-ui.min.js" type="text/javascript"></script>
        <link href="http://ajax.aspnetcdn.com/ajax/jquery.ui/1.9.2/themes/blitzer/jquery-ui.css" rel="Stylesheet" type="text/css" />      
         <script type="text/javascript">
            $(function () {
                initializer();
            });
            var prmInstance = Sys.WebForms.PageRequestManager.getInstance();
            prmInstance.add_endRequest(function () {
                //you need to re-bind your jquery events here
                initializer();
            });
            function initializer() {

                $("[id*=txtDPN]").autocomplete({ source: 
                   "/Handlers/SearchDPN.ashx" });
            }
        </script>
var $arrT = $('#<%=gv_Others.ClientID %>').find('input:text[id$="txtEmp"]');
$(document).ready(function() {
    // This selects all inputs inside the table with the txtE class and applies
    // the autocomplete function to them
    $('table[id$="gv_Others"] input.txtE').autocomplete({
        source: function(request, response) {
            $.ajax({
                url: "WebService.asmx/GetAutoCompleteData",
                type: "POST",
                dataType: "json",
                contentType: "application/json; charset=utf-8",
                data: "{ 'txt1' : '" + request.term + "'}", 
                dataFilter: function(data) { return data; },
                success: function(data) {
                    response($.map(data.d, function(item) {
                        return {
                            label: item,
                            value: item
                        }
                    }))
                    //debugger;
                },
                error: function(result) {
                    alert("Error");
                }
            });
        },
        minLength: 1,
        delay: 1000
    });
});
data: "{ 'txt1' : '" + $($arrT).val() + "'}",
using System;
using System.Web;
using System.Data.SqlClient;
using System.Configuration;
using System.Text;
using System.Collections.Generic;
using System.Web.Script.Serialization;

namespace PlatForm_RollUp
{
    /// <summary>
    /// Summary description for SearchDPN
    /// </summary>
    public class SearchDPN : IHttpHandler
    {

        public void ProcessRequest(HttpContext context)
        {
            string prefixText = context.Request.QueryString["term"];
            if (string.IsNullOrEmpty(prefixText)) { prefixText = "NA"; }
            using (SqlConnection conn = new SqlConnection())
            {
                conn.ConnectionString = ConfigurationManager
                        .ConnectionStrings["PPN_ConnectionString"].ConnectionString;
                using (SqlCommand cmd = new SqlCommand())
                {
                    cmd.CommandText = "select DPN_Key, DPN, Item_Desc from Customer.DIM.PPN WHERE " +
                        "DPN like @SearchText+'%'";
                    cmd.Parameters.AddWithValue("@SearchText", prefixText);
                    cmd.Connection = conn;
                    //StringBuilder sb = new StringBuilder();
                    List<string> _dpn = new List<string>();
                    conn.Open();
                    using (SqlDataReader sdr = cmd.ExecuteReader())
                    {
                        while (sdr.Read())
                        {
                            //sb.Append(string.Format("{0} - {1}", sdr["DPN"], sdr["Item_Desc"], Environment.NewLine));
                            _dpn.Add(sdr["DPN"].ToString() +" - " +sdr["Item_Desc"].ToString());
                        }
                    }
                    conn.Close();
                    context.Response.Write(new JavaScriptSerializer().Serialize(_dpn));
                }
            }
        }

        public bool IsReusable
        {
            get
            {
                return false;
            }
        }
    }
}


***************************
 <script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.10.0.min.js" type="text/javascript"></script>
        <script src="http://ajax.aspnetcdn.com/ajax/jquery.ui/1.9.2/jquery-ui.min.js" type="text/javascript"></script>
        <link href="http://ajax.aspnetcdn.com/ajax/jquery.ui/1.9.2/themes/blitzer/jquery-ui.css" rel="Stylesheet" type="text/css" />      
         <script type="text/javascript">
            $(function () {
                initializer();
            });
            var prmInstance = Sys.WebForms.PageRequestManager.getInstance();
            prmInstance.add_endRequest(function () {
                //you need to re-bind your jquery events here
                initializer();
            });
            function initializer() {

                $("[id*=txtDPN]").autocomplete({ source: 
                   "/Handlers/SearchDPN.ashx" });
            }
        </script>