服务器端代码:
///
<summary>
/// Ajax服务器端响应方法
/// </summary>
/// <param name="param"></param>
/// <returns></returns>
[AjaxPro.AjaxMethod]
public List < List < string >> GetData( string param)
{
// 获得数据
Hashtable ht = DBHelper.GetDDLHashData(param);
List < List < string >> list = new List < List < string >> ();
List < string > ilist;
// 迭代拷贝数据
foreach (DictionaryEntry item in ht)
{
ilist = new List < string > ();
ilist.Add(item.Key.ToString());
ilist.Add(item.Value.ToString());
list.Add(ilist);
}
return list;
}
代码基本上不难,用泛型来包装一个List返回给客户端。再看客户端代码:
/// Ajax服务器端响应方法
/// </summary>
/// <param name="param"></param>
/// <returns></returns>
[AjaxPro.AjaxMethod]
public List < List < string >> GetData( string param)
{
// 获得数据
Hashtable ht = DBHelper.GetDDLHashData(param);
List < List < string >> list = new List < List < string >> ();
List < string > ilist;
// 迭代拷贝数据
foreach (DictionaryEntry item in ht)
{
ilist = new List < string > ();
ilist.Add(item.Key.ToString());
ilist.Add(item.Value.ToString());
list.Add(ilist);
}
return list;
}
//
添加Dropdownlist内容
function AddItemsTosDropdown(array,obj)
{
try {
var GetObj = document.getElementById(obj);
GetObj.length = 0 ;
GetObj.options.add( new Option( " 请选择 " , "" ));
for ( var i = 0 ;i < array.length;i ++ ){
GetObj.options.add( new Option(array[i][ 1 ],array[i][ 0 ]));
}
}
catch (e){
alert(e.message);
}
}
调用js方法代码:
function AddItemsTosDropdown(array,obj)
{
try {
var GetObj = document.getElementById(obj);
GetObj.length = 0 ;
GetObj.options.add( new Option( " 请选择 " , "" ));
for ( var i = 0 ;i < array.length;i ++ ){
GetObj.options.add( new Option(array[i][ 1 ],array[i][ 0 ]));
}
}
catch (e){
alert(e.message);
}
}
function
selectChangeData(selectedValue)
{
try
{
// 获得数据并添加到列表框
AddItemsTosDropdown(ItemSeach.GetData(String(selectedValue)).value, " <%=ddlControl.ClientID%> " );
} catch (e){
alert(e.message);
}
}
{
try
{
// 获得数据并添加到列表框
AddItemsTosDropdown(ItemSeach.GetData(String(selectedValue)).value, " <%=ddlControl.ClientID%> " );
} catch (e){
alert(e.message);
}
}
OK!没有一点问题,复制代码只需要改下数据源获取就可以用了,比较通用,但是别忘了AjaxPro使用的基本设置。
大家也可以在这个基础上加强,写得更通用一些:)
本文转自博客园农民伯伯的博客,原文链接:AjaxPro无刷新选择列表框/下拉框[方便|稳定],如需转载请自行联系原博主。