• AutoCompleteExtender 使用示例


    绑定 KeyValuePair,网上很多例子,没有找到绑定键值对的,msdn上有例子,备忘一下。

    using FirstElite.Verify.Entity;
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Web;
    using System.Web.Services;
    
    namespace FirstElite.Verify.WebServices
    {
        /// <summary>
        /// SchoolAutoComplete 的摘要说明
        /// </summary>
        [WebService(Namespace = "http://tempuri.org/")]
        [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
        [System.Web.Script.Services.ScriptService]
        public class SchoolAutoComplete : System.Web.Services.WebService
        {
    
            [WebMethod]
            public string[] GetSchoolCompletionList(string prefixText, int count)
            {
                using (var db = new FirstEliteVerifyEntities())
                {
                    var districtList = db.District.ToList();
                    var schoolList = db.School.Where(item => item.name.Contains(prefixText)).Take(100).OrderBy(item => item.districtcode)
                        .Select(item => new SchoolModel
                        {
                            Name = item.name,
                            DistrictCode = item.districtcode,
                            Code = item.schoolcode
                        }).ToList();
                    var sb = new StringBuilder();
                    foreach (var school in schoolList)
                    {
                        var districtCode = school.DistrictCode;
                        var district = districtList.FirstOrDefault(d => d.code == districtCode);
                        sb.Clear();
                        sb.Append(district.name);
                        while (district != null && district.parentcode != null)
                        {
                            district = districtList.First(item => item.code == district.parentcode);
                            if (district != null)
                                sb.Insert(0, district.name);
                        }
                        school.District = sb.ToString();
                    }
    
                    var result = schoolList.Select(item => 
                    {
                        var text = string.Format("{0}({1})", item.Name, item.District);
                        var autoCompleteItem = AjaxControlToolkit.AutoCompleteExtender.CreateAutoCompleteItem(text, item.Code);
                        return autoCompleteItem;
                    });
    
                    return result.ToArray();
                } 
            }
    
            public class SchoolModel
            {
                public string Name { get; set; }
                public string DistrictCode { get; set; }
                public string District { get; set; }
                public string Code { get; set; }
            }
        }
    }
    <asp:TextBox ID="txtSearchKey" runat="server" Width="200px" autocomplete="off"></asp:TextBox>
                        <ajaxToolkit:AutoCompleteExtender
                            runat="server" 
                            BehaviorID="AutoCompleteEx"
                            ID="autoComplete1" 
                            TargetControlID="txtSearchKey"
                            ServicePath="../WebServices/SchoolAutoComplete.asmx" 
                            ServiceMethod="GetSchoolCompletionList"
                            MinimumPrefixLength="1" 
                            CompletionInterval="500"
                            EnableCaching="true"
                            CompletionSetCount="50"
                            CompletionListCssClass="a" 
                            CompletionListItemCssClass="b" 
                            CompletionListHighlightedItemCssClass="c"
                            OnClientItemSelected="AutoCompleteSelected"
                            ShowOnlyCurrentWordInCompletionListItem="true" >
                        </ajaxToolkit:AutoCompleteExtender>
    <script type="text/javascript">
            function AutoCompleteSelected(source, eventArgs)
            {
                alert(eventArgs.get_text() + "<->" + eventArgs.get_value());
            }
        </script>
  • 相关阅读:
    贫血,充血模型的解释以及一些经验(非常经典)(非原创)
    源代码管理安装大全
    20条常见的编码陷阱 你中枪了没?(转)
    从30岁到35岁:为你的生命多积累一些厚度(转)
    Model1 与Model2(转)
    白话MVP(转帖)
    stl string 使用
    TerminateThread不要使用的證據
    C++静态成员函数小结(转)
    C/C++必知必会1
  • 原文地址:https://www.cnblogs.com/nanfei/p/9982878.html
Copyright © 2020-2023  润新知