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().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(, 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>
AutoCompleteExtender 使用示例的更多相关文章
- Swift3.0服务端开发(一) 完整示例概述及Perfect环境搭建与配置(服务端+iOS端)
本篇博客算是一个开头,接下来会持续更新使用Swift3.0开发服务端相关的博客.当然,我们使用目前使用Swift开发服务端较为成熟的框架Perfect来实现.Perfect框架是加拿大一个创业团队开发 ...
- .NET跨平台之旅:将示例站点升级至 ASP.NET Core 1.1
微软今天在 Connect(); // 2016 上发布了 .NET Core 1.1 ,ASP.NET Core 1.1 以及 Entity Framework Core 1.1.紧跟这次发布,我们 ...
- 通过Jexus 部署 dotnetcore版本MusicStore 示例程序
ASPNET Music Store application 是一个展示最新的.NET 平台(包括.NET Core/Mono等)上使用MVC 和Entity Framework的示例程序,本文将展示 ...
- WCF学习之旅—第三个示例之四(三十)
上接WCF学习之旅—第三个示例之一(二十七) WCF学习之旅—第三个示例之二(二十八) WCF学习之旅—第三个示例之三(二十九) ...
- JavaScript学习笔记(一)——延迟对象、跨域、模板引擎、弹出层、AJAX示例
一.AJAX示例 AJAX全称为“Asynchronous JavaScript And XML”(异步JavaScript和XML) 是指一种创建交互式网页应用的开发技术.改善用户体验,实现无刷新效 ...
- XAMARIN ANDROID 二维码扫描示例
现在二维码的应用越来越普及,二维码扫描也成为手机应用程序的必备功能了.本文将基于 Xamarin.Android 平台使用 ZXing.Net.Mobile 做一个简单的 Android 条码扫描示 ...
- iOS之ProtocolBuffer搭建和示例demo
这次搭建iOS的ProtocolBuffer编译器和把*.proto源文件编译成*.pbobjc.h 和 *.pbobjc.m文件时,碰到不少问题! 搭建pb编译器到时没有什么问题,只是在把*.pro ...
- Android种使用Notification实现通知管理以及自定义通知栏(Notification示例四)
示例一:实现通知栏管理 当针对相同类型的事件多次发出通知,作为开发者,应该避免使用全新的通知,这时就应该考虑更新之前通知栏的一些值来达到提醒用户的目的.例如我们手机的短信系统,当不断有新消息传来时,我 ...
- oracle常用函数及示例
学习oracle也有一段时间了,发现oracle中的函数好多,对于做后台的程序猿来说,大把大把的时间还要学习很多其他的新东西,再把这些函数也都记住是不太现实的,所以总结了一下oracle中的一些常用函 ...
随机推荐
- fineui排序问题
后台: private void BindGrid() { // 1.获取当前分页数据 DataSet dataSet = GetPagedDataTable(); ...
- [转]MYSQL 创建存储过程
MySQL 存储过程是从 MySQL 5.0 开始增加的新功能.存储过程的优点有一箩筐.不过最主要的还是执行效率和SQL 代码封装.特别是 SQL 代码封装功能,如果没有存储过程,在外部程序访问数据库 ...
- Problem 1: Multiples of 3 and 5
小白一枚,python解法,共同学习,一起进步. Problem 1: Multiples of 3 and 5 If we list all the natural numbers below 10 ...
- python2入门(3)
六.python列表(List) python最常见的序列类型python列表List使用[]表示,元素之间以逗号分隔,元素类型不需要相同 内置操作: list = [1,2,3,'four'] li ...
- Verilog中的reg一定会被综合成寄存器么
对应于实际的数字电路中,如果该程序块描述的是时序逻辑,则该寄存器变量对应为寄存器:如果该程序块描述的是组合逻辑,该寄存器变量对应为硬件逻辑:如果该程序块描述的是不完全组合逻辑,那么该寄存器变量也可以对 ...
- Python开发环境-Pyenv安装使用
安装使用-Pyenv 简单的python版本管理:pyenv 管理python解释器 管理python版本 管理python的虚拟环境 官网:https://github.com/pyenv/pyen ...
- 蓝屏代码PAGE_FAULT_IN_NONPAGED_AREA的解决方法
就在昨天晚上,小王同学的电脑继1803更新后第4次蓝屏了,原本蓝屏后自动重启后就会恢复正常,然而天真的我太低估了微软的实力.蓝屏-重启-蓝屏-重启无限循环 当然,重启几次就进入了高级模式 高级模式 进 ...
- 合肥工业大学oj G-诺德森海岸
#include<iostream> #include<vector> #include<bits/stdc++.h> using namespace std; v ...
- React中使用echarts
1.安装相关的依赖: cnpm i react-for-echarts -S cnpm i echarts -S 2.使用方法: 页面引入: import ReactEcharts from 'ech ...
- 最近的AI
虚拟币和AI 两个大类怎么兴起?