2011-08-09 41 views
0


我在一个页面上有一个下拉列表,我想使用AJAX为了从XML文件填充它。有没有办法告诉AJAX只运行某些asp.net方法而不使用WebServices?
欢迎任何其他解决方案,但唯一的限制是它将在服务器端进行(而不是以js为例)?使用ajax从xml填充DropdownList

谢谢!

+0

你能发布一些样品代码请?您是使用AJAX Control Toolkit还是其他一些方法将SELECT框连接到AJAX? –

+0

不,我只是在服务器上有一个DropDownList和一个XML文件,我需要让AJAX调用服务器上的一个函数来对XML执行一些操作,并获取我想要绑定到的项目列表下拉列表。这甚至有可能吗? – Assaf

+0

我不明白你的意思是“没有使用WebServices”。如果您使用的是Ajax,您*使用的是web服务,与任何其他正常的http请求没有区别。 – bart

回答

0

这可以通过各种方式 - 一种方法是在客户端使用jQuery来生成AJAX请求(像这样绑定到页面,但可以绑定到SELECT更改事件) :

$(document).ready(function() { 
    $.get('/target-url.aspx?someparam=somevalue', function(data) { 
    // process the returned data - dependant on the format - assuming JSON here. 
    var items = data['items']; 

    // may wish to clear the contents of the SELECT box. 

    // spin through and add OPTION elements 
    for(var i = 0; i < items.length; i++) { 
     $('#selectid').append('<option>'+items[i]+'</option>'); 
    } 
    } 
} 

其中selectid是dropdownlist元素的ID(在ASP.NET中使用ClientId)。

然后,您需要在ASP.NET中编写一些代码以用您所需的逻辑响应AJAX请求。

一些有用的链接:

http://api.jquery.com/jQuery.get/

http://api.jquery.com/append/

看到这里使用jQuery和ASP.NET使用JSON的例子:

http://encosia.com/use-jquery-and-aspnet-ajax-to-build-a-client-side-repeater/

+0

谢谢,但我失去了一些东西:在ASP.NET代码 - 我应该在哪里放置我的逻辑(在哪个方法?)?,我该如何返回'项'JSON? – Assaf

+0

我刚刚添加了另一个链接,其中有一个示例可以帮助您 –