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中的一些常用函 ...
随机推荐
- OO第十二次作业
规格设计的发展历史 随着计算机软硬件的发展,代码的复杂程度也在不短增加,随着计算机软件规模日渐庞大,结构化程序设计方法开始无法满足用户的需求,面向对象程序设计产生.面向对象程序设计是一场重大的革命,提 ...
- COM/DCOM简述
这些组件对象可以互相通讯与交互,而与它们的语言.分布及原始平台无关.COM规程包括一套标准API.一个标准的接口集以及COM用于支持分布式计算的网络协议.而DCOM模型则是一套用于分布式环境中的COM ...
- 用vector与bitset分别创建1亿以内的素数表,比较快慢
vector容器: 代码如下: #include<iostream>#include<vector>#include<ctime>using namespace s ...
- BigDecimal类的用法
(一)BigDecimal类的常用的几个构造方法 BigDecimal(int):将int表示形式转换为BigDecimal对象 BigDecimal(String):将字符串表示形式转换为BigDe ...
- 《A Knowledge-Grounded Neural Conversation Model》
abstract 现在的大多数模型都可以被应用在闲聊场景下,但是还没有证据表明他们可以应用在更有用的对话场景下.这篇论文提出了一个知识驱动的,带有背景知识的神经网络对话系统,目的是为了在对话中产生更有 ...
- 泊爷带你学go -- redis连接池的操作
package main import ( "common" "fmt" "proto" "strconv" " ...
- element UI 下拉菜单滚动监听(vue指令)
直接看代码吧,可以直接粘贴此代码到你的编辑器中看效果. <template> <div class="page-component"> <div cl ...
- 微信小程序 image属性 mode
mode属性可以改变图片的填充容器方式
- 在IE浏览器中url传参长度问题
1.在这之前我一直以为,应该说是并没有去思考过,url地址传参的长度限制问题:知道在项目材料价格系统中遇到之后,才对这个问题进行了具体的探索.IE中最大的长度限制为2084个,用于get传递数据的长度 ...
- two pointers
two pointers是算法编程中一种非常重要的思想,但是很少会有教材单独拿出来将,其中一个原因是它更倾向于是一种编程技巧,而长得不太像是一个是“算法”的模样.two pointers的思想十分简介 ...