jquery插件+.net 仿google的自動提示功能效果

之前有需要這樣的功能,是用ajax的自動完成控件實現的,但是個人認爲封裝的東西並不好用,比如說上次的那個傳參數問題,所以有空閒的時候又看了jquery插件,感覺挺不錯,但是示例是php的,本人轉化爲。net的,可以對有需要的朋友作爲參考,其實也很簡單。

閒話少說,直接看代碼

首先引用jquery插件 插件可以去網上搜,

<style type="text/css">@import url("SuggestFramework.css");</style>
<style type="text/css">input { width: 200px; border: 1px solid #CCCCCC; }</style>
<script type="text/javascript" src="SuggestFramework.js"></script>
<script type="text/javascript">
    window.onload = initializeSuggestFramework;
</script>

 

添加控件

 <input id="example1" name="example1" type="text" action="Default.aspx" columns="2" capture="1" /><br />

 

1.action 必須。接受 GET 方式提交的數據,並返回相關 Javascript 數組的動態頁。
2.capture 如果返回的結果不止一列(比如本例中的單詞和中文意思),將要替換用戶輸入的那一列(從 1 開始算)。通常這個和數據庫字段相對應。可選,默認爲 1.
3.columns 下拉顯示的列數,比如本例中,按字母查詢單詞,並將中文意思顯示在右側。可選,默認爲 1.
4.delay 查詢延時,單位爲毫秒。較低的延時會得到更快的反應,但會加重服務器負擔。可選,默認爲 1000(1秒)。
5.heading 如果設爲 true ,第一個數組值將作爲不可選擇項(標題欄)。當有兩列或兩列以上數據時非常有用。可選,默認爲 false.

 

數據提交只需要兩個數據
1.type  輸入框的name
2.q  搜索關鍵字(默認UTF-8編碼)

 

前臺頁面已完成。

下面看後臺代碼

 string p=Request["q"];
            string p1 = Request["type"];
            if (!string.IsNullOrEmpty(p))
            {
                System.Text.StringBuilder builder = new System.Text.StringBuilder();
                builder.Append("new Array(");
                string strconj = "server=.;database=huiben;uid=sa;pwd=";
                SqlConnection con = new SqlConnection(strconj);
                con.Open();
                string sql = "select name,je from suggest where name like'" + p + "%'";
                SqlCommand cmd = new SqlCommand(sql, con);
                SqlDataAdapter ad = new SqlDataAdapter(cmd);
                DataSet ds = new DataSet();
                ad.Fill(ds);
                for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
                {
                    if (i != ds.Tables[0].Rows.Count - 1)
                    {
                        builder.AppendFormat("new Array(/"{0}/", {1}),", ds.Tables[0].Rows[i]["name"].ToString(), ds.Tables[0].Rows[i]["je"].ToString());
                    }
                    else
                    {
                        builder.AppendFormat("new Array(/"{0}/", {1})", ds.Tables[0].Rows[i]["name"].ToString(), ds.Tables[0].Rows[i]["je"].ToString());
                    }
                }
                builder.Append(")");
                Response.Clear();
                Response.Write(builder.ToString());
               Response.End();
            }

效果如圖所示:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章