绑定 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>
05-08 08:37