如何设置自定义Jquery自动完成响应消息

时间:2013-03-04 03:33:07

标签: c# jquery asp.net .net ajax

我正在使用Jquery自动完成文本框,因为我输入的名称以z或数据库中不可用的内容开头,那时我需要在自动完成时显示自定义消息,提到“No Datas”发现“

我想出了一个解决方案,如果下面提到的解决方案不正确或任何其他替代方法,请纠正我。

提前致谢。

自动完成TextBox.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="AutoCompleteTextBox.aspx.cs" Inherits="Ajax_Using_Jquery.AutoCompleteTextBox" %>

<!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">
<head runat="server">
    <title>Ajax Auto Complete Using Jquery</title>
    <script type="text/javascript" src="JQuery/jquery-1.9.0.mini.js"></script>
    <script type="text/javascript" src="JQuery/jquery-ui.min.js" ></script>
    <%--<link type="text/css" href="StyleSheet/jquery-ui.css" rel="Stylesheet" />--%>
     <link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.1/themes/base/jquery-ui.css" rel="stylesheet" type="text/css"/>


      <%--<link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.1/themes/base/jquery-ui.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.1/jquery-ui.min.js"></script> --%> 
    <script type="text/javascript">


     $(document).ready(function () {

         $(".autosuggest").autocomplete({
             source: function (request, response) {
                 $.ajax({
                     type: "POST",
                     contentType: "application/json; charset=utf-8",
                     url: "AutoCompleteFetchService.asmx/getUserNames",
                     data: "{'TextBoxVal':'" + document.getElementById('txtName1').value + "'}",
                     dataType: "json",
                     success: function (data) {
                         response(data.d);
                         if (data.d == "" || data.d == null || typeof (data.d) == 'undefined') {

                             response(["no search found"]);
                         }
                     },
                     error: function (XMLHttpRequest, textStatus, errorThrown) {
                         alert("error " + XMLHttpRequest);
                         alert("error " + textStatus);
                         alert("error " + errorThrown);
                     }
                 });
             }
         });
     });
    </script>
  <%--  <link href="StyleSheet/jquery-ui.css" type="text/css" rel="Stylesheet" />--%>
</head>
<body>
    <form id="form1" runat="server">
    <table>
    <tr>
    <td>
    <div>
    User Name : &nbsp;&nbsp;

        <input type="text" id="txtName1" class="autosuggest"  />
    </div>
    </td>
    </tr>
    </table>
    </form>
</body>
</html>

AutoCompleteFetchService.asmx.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;
using System.Data.SqlClient;
using System.Configuration;

namespace Ajax_Using_Jquery
{
    /// <summary>
    /// Summary description for AutoCompleteFetchService
    /// </summary>
    [WebService(Namespace = "http://tempuri.org/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    [System.ComponentModel.ToolboxItem(false)]
    [System.Web.Script.Services.ScriptService()]
    // To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line. 
    // [System.Web.Script.Services.ScriptService]
    public class AutoCompleteFetchService : System.Web.Services.WebService
    {


        [WebMethod]
        public List<string> getUserNames(string TextBoxVal)
        {
            string strCon;
            List<string> objList = new List<string>();
            strCon = ConfigurationManager.ConnectionStrings["EmpNameFetch"].ConnectionString;
            SqlConnection con = new SqlConnection(strCon);
            SqlCommand cmd = new SqlCommand(@"select EmpName from newTb2 where EmpName like '%" + TextBoxVal + "%'", con);
            con.Open();
            SqlDataReader objReader = cmd.ExecuteReader();

            while (objReader.Read())
            {
                objList.Add(objReader["EmpName"].ToString());
            }

            con.Close();
            return objList;

        }

    }
}

1 个答案:

答案 0 :(得分:0)

如果未找到任何结果,则以下打印“0结果”,如果找到结果,则会向用户显示“单击或向上/向下箭头”的有用信息

  

消息:{noResults:'0 Results',results:function(){return'Click or Arrow U / D'; }}