带分类页签搜索框的实现

Posted yfceshi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了带分类页签搜索框的实现相关的知识,希望对你有一定的参考价值。

需求:类似于淘宝搜索框。能够依据选择不同的分类进行帅选查询,效果图例如以下:

技术分享

aspx代码例如以下:

       <div id="divSearch" class="form-wrapper">
                    <div class="tab_area">
                        <div id="divWaterMeterCode" class="tab hover"><span onclick="setSearchTab(0)">水表编码</span></div>
                        <div id="divClientCode" class="tab"><span onclick="setSearchTab(1)">客户编码</span></div>
                        <div id="divClientName" class="tab"><span onclick="setSearchTab(2)">客户名称</span></div>
                    </div>
                    <asp:TextBox ID="txtWords" runat="server"></asp:TextBox>
                    <asp:Button ID="btnSearch" runat="server" Text="搜索" OnClick="btnSearch_Click" />
                </div>
        <!--记录查询tab的状态,这里能够用来记录鼠标点击的是“水表编码”还是“客户编码”or“客户名称”页签 -->
        <asp:HiddenField ID="hidfSearchTag" runat="server" />
css代码例如以下:

/*----------------搜索框---------------------*/
* { margin: 0; padding: 0;}

html { color: #545454; font-size: 12px; font-family: "微软雅黑"}

a { text-decoration:none; color: #09F;}
img { border: none;}
/*span { float: left;}*/
.bg { background-image:url(bg.jpg); background-attachment:fixed;}
.header { margin:auto; width:100%; height: auto;}
 .tab_area{ height: 25px; width: 210px;}
 .tab_area .tab { height: 25px; line-height: 25px; width: 70px; float: left; text-align: center;}
 .tab_area .tab a { color: black;}
 .tab_area .tab a:hover { color: red;}
 .tab_area .hover { background: #3385ff; color:wheat;}
 .tab_area .hover a {color:wheat;}
 .search_form { border: 2px solid #C60; height: 30px; background: white; font-size: 14px; overflow: hidden; padding: 0;}
 .hot_words { height:20px; width: 480px; font-size: 12px; margin: 5px 0px 5px 0px; overflow: hidden;} 
 .hot_words .more {padding-right: 0; margin-right:0;}
 .hot_words a { padding-right: 5px; color: #CCC;}
 .hot_words a:hover { color: red; text-decoration: underline;}
 .search_form input[type=text] { height: 20px; line-height: 20px; width: 380px; color:#999; border: none; margin:0; padding:5px;}
 .search_form input[type=submit] { height: 30px; line-height: 30px; width: 80px; font-size: 14px; color: #C60; cursor: pointer; background:#CCC;  float: right; border: none; text-align: center; margin:0; padding:0;}
.tab_area span {
    width: 70px;
}
  .tab_area .tab span { color: black;}
 .tab_area .tab span:hover { color: red;cursor:pointer;}
 .tab_area .hover { background: #3385ff; color:wheat; cursor:pointer;}
 .tab_area .hover span {color:wheat;}
.form-wrapper {
 width: 653px;
 padding: 8px;
 padding-top:2px;
 margin: auto;
 overflow: hidden;
 float:left;
    margin-top:10px;
    text-align:left;
}
.form-wrapper #txtWords {
 width: 545px;
 height: 20px;
 padding: 2px 1px;
 float: left;    
 font: bold 14px 'lucida sans', 'trebuchet MS', 'Tahoma';
 border: 1px solid #ccc;
 border-radius: 3px;    
    /*margin-right:4px;*/  
}
.form-wrapper #txtWords:focus {
 outline: 0; 
 border-color: #aaa;
 box-shadow: 0 1px 1px #bbb inset;  
}
.form-wrapper #btnSearch {
 float: right;    
 border: 1px solid #00748f;
 height: 25px;
 width: 100px;
 padding: 0;
 cursor: pointer;
 font: bold 15px Arial, Helvetica;
 color: #fafafa;
 text-transform: uppercase;    
 background-color: #3385ff;
 background-image: linear-gradient(top, #31b2c3, #3385ff);
 border-radius: 3px;      
 text-shadow: 0 1px 0 rgba(0, 0 ,0, .3);
 box-shadow: 0 1px 0 rgba(255, 255, 255, 0.3) inset, 0 1px 0 #fff;
}
.form-wrapper #btnSearch:hover,
.form-wrapper #btnSearch:focus {  
 background-color: #3333FF;
 background-image: linear-gradient(top, #6699FF,#3333FF);
}  
.form-wrapper #btnSearch:active {
 outline: 0;    
 box-shadow: 0 1px 4px rgba(0, 0, 0, 0.5) inset;    
}
.form-wrapper #btnSearch::-moz-focus-inner {
 border: 0;
}
js代码例如以下:

//设置查询tab高亮显示 參数:查询tab的索引 0開始
function setSearchTab(tag) {
    var div0 = document.getElementById("divWaterMeterCode");
    var div1 = document.getElementById("divClientCode");
    var div2 = document.getElementById("divClientName");
    var oprater = document.getElementById("hidfSearchTag");
    switch (tag) {
        case 0:
            div0.className = 'tab hover';
            div1.className = 'tab';
            div2.className = 'tab';
            oprater.value = "0";
            break;
        case 1:
            div0.className = 'tab';
            div1.className = 'tab hover';
            div2.className = 'tab';
            oprater.value = "1";
            break;
        case 2:
            div0.className = 'tab';
            div1.className = 'tab';
            div2.className = 'tab hover';
            oprater.value = "2";
            break;
    }
}
cs代码:

    //查询
        protected void btnSearch_Click(object sender, EventArgs e)
        {
            string searchTag = hidfSearchTag.Value;
            string words = txtWords.Text.Trim();
            DataTable dt = null;
            switch (searchTag)
            {
                case "0": //水表编码
                    dt = SearchInfoListByMeterCode(words);

                    break;
                case "1": //客户编码
                    break;
                case "2": //客户名称
                    break;
                default:
                    break;
            }
        }
实现思路事实上非常easy。用js来控制查询tab的颜色,并用一个隐藏控件来记录选择的分类。当点击查询button时。就能够依据隐藏控件中的值知道点击的是哪一分类,然后再进行查询。



以上是关于带分类页签搜索框的实现的主要内容,如果未能解决你的问题,请参考以下文章

Extjs combobox 实现搜索框的效果

带搜索框的从属下拉列表

JQuery插件带搜索框的下拉框美化插件

怎么用js写一个类似于百度输入框的搜索插件

C#中如何实现百度搜索框的效果

带组合框的用户表单-输入密钥行为