用ajax(vb.net) 实现dropdownlist二级无刷新联动~!

说说vb.net ajaxpro 实现dropdownlist二级无刷新联动~!
Code
<div class="div_RSL"> 
<asp:DropDownList ID="DropDownList1" runat="server" DataSourceID="proID" DataTextField="proName"AutoPostBack="false" DataValueField="proID"> 
</asp:DropDownList> 
<asp:SqlDataSource ID="proID" runat="server" ConnectionString="<%$ ConnectionStrings:opperajaxConnectionString %>"SelectCommand="SELECT [proID], [proName] FROM [TB_province] ORDER BY [proID]"></asp:SqlDataSource> 
<asp:DropDownList ID="DropDownList2" runat="server"> 
</asp:DropDownList> 
</div>
这里dropdownlist1是服务器控件绑定,很方便~!
Code
function ShowCity(id) 

     
var res= Other_Register2.GetCity(id).value; 
     
var drop = document.getElementById("<%=DropDownList2.UniqueID %>"); 
     drop.length
=0
     
for(var i=0;i<res.Rows.length;i++)    
            {         
             drop.options.add(
new Option(res.Rows[i].TB_cityName,res.Rows[i].TB_cityID)); 
            }    
}
 
alert(res)将返回一个[object object]类型
alert(res.rows)将返回一个object类型
alert(res.rows[0].value)将返回一个[object object]类型
如果返回null类型,接收不到datatable数据,则可能是你的ajaxpro.2.dll并不支持datatable输出,建议你下载文章末尾ajaxpro.2.dll附件~!
vb.net写法:
Code
Sub Page_Load() Sub Page_Load(ByVal sender As ObjectByVal e As System.EventArgs) Handles Me.Load 
    
If Not Page.IsPostBack Then 
        DropDownList1.Attributes(
"onchange"= "ShowCity(this.options[selectedIndex].value)" 
    
End If         
AjaxPro.Utility.RegisterTypeForAjax(
GetType(Other_Register2)) 
End Sub 

Function GetCity() Function GetCity(ByVal sproid) As DataTable 
Dim sqlconnection As New SqlConnection(ShareFunction.GetDBConnectionString()) 
sqlconnection.Open() 
Dim sql As String = "select TB_cityID,TB_cityName from TB_city where proID=" & ShareFunction.SafeRequest(sproid, 1& "" 
Dim dataada As New SqlDataAdapter(sql, sqlconnection) 
Dim dt As New DataTable 
dataada.Fill(dt) 
Return dt 
End Function

这里使用dataadapter对象将查询数据存入datatable中~!

ajaxpro.2.dll

你可能感兴趣的:(VB.NET)