我想用asp.net实现一个功能,就是设计两个dropdownlist d1和d2,都从数据库中获取数据,已经存在若干数据
就是希望当d1中选择运动鞋时,d2里面为篮球鞋、足球鞋等,d1中选择皮鞋时,d2里面就变为高跟鞋、平底鞋等(大致就是这个意思),希望不要整个页面刷新,应该怎么办?用aja...
就是希望当d1中选择运动鞋时,d2里面为篮球鞋、足球鞋等,d1中选择皮鞋时,d2里面就变为高跟鞋、平底鞋等(大致就是这个意思),希望不要整个页面刷新,应该怎么办?用ajax实现的话 思路是什么?
展开
5个回答
展开全部
二级联动,d1先读取数据,然后通过d1selectindexchange事件给d2绑定数据(事件名没全),然后你可以直接用ajax控件中的UpdatePanel 控件可以实现局部刷新,很简单!代码如下!
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
--这里放d1 d2
</ContentTemplate>
</asp:UpdatePanel>
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
--这里放d1 d2
</ContentTemplate>
</asp:UpdatePanel>
追问
你这边的ScriptManager控件的作用是?
追答
全局脚本控制器。
用来控制ajax核心控件的。只用声明过scriptmanager后,才能生命类似time,updatepanel 等控件。
简单点说就是母亲和儿子的关系!
展开全部
举个例子吧:
引入jquery来帮助你实现.比较简单.此例子后台是用PHP写的.
html文件内容
<html>
<meta http-equiv="Content-type" content="text/html; charset=utf-8" ></meta>
<head>
<title>
demo
</title>
<script src="jquery.js" type="text/javascript"></script><!--引入jquery -->
<script>
function getarea(){
var region_id = $("#region").val();//获得下拉框中大区域的值
if(region_id != ''){
$.ajax({
type: "post",
url: "b.php",
data:"region_id="+region_id,
cache:false,
beforeSend: function(XMLHttpRequest){
},
success: function(data, textStatus){
//alert(data);
$("#area").empty();//清空area下拉框
$("#area").append(data);//给area下拉框添加option
},
complete: function(XMLHttpRequest, textStatus){
},
error: function(){
//请求出错处理
}
});
}
}
</script>
</head>
<body>
<div >
<table class='itable' width='100%' id='timetable' >
<tr>
<td class="test_c" id="one">
<select id="region" name="region" onchange="getarea();">
<option value="">请选择</option>
<option value="1">东北</option>
<option value="2">华北</option>
</select>
</td>
</tr>
<tr>
<td>
<select id="area" name="area">
</select>
</td>
</tr>
</table>
</div>
</body>
</html>
=============
b.php内容
<?php
$region_id = $_POST['region_id'];
//根据前台传过来的region_id来处理下拉框的内容.
//这里演示直接输出,你可以从数据库中读出来组织后再输出.
switch($region_id){
case 1:{
$area_option = "<option value='1'>辽宁</option><br><option value='2'>吉宁</option><br><option value='3'>黑龙江</option>";
echo $area_option;
break;
}
case 2:{
$area_option = "<option value='4'>北京</option><option value='5'>天津</option><option value='6'>河北</option>";
echo $area_option;
break;
}
}
?>
引入jquery来帮助你实现.比较简单.此例子后台是用PHP写的.
html文件内容
<html>
<meta http-equiv="Content-type" content="text/html; charset=utf-8" ></meta>
<head>
<title>
demo
</title>
<script src="jquery.js" type="text/javascript"></script><!--引入jquery -->
<script>
function getarea(){
var region_id = $("#region").val();//获得下拉框中大区域的值
if(region_id != ''){
$.ajax({
type: "post",
url: "b.php",
data:"region_id="+region_id,
cache:false,
beforeSend: function(XMLHttpRequest){
},
success: function(data, textStatus){
//alert(data);
$("#area").empty();//清空area下拉框
$("#area").append(data);//给area下拉框添加option
},
complete: function(XMLHttpRequest, textStatus){
},
error: function(){
//请求出错处理
}
});
}
}
</script>
</head>
<body>
<div >
<table class='itable' width='100%' id='timetable' >
<tr>
<td class="test_c" id="one">
<select id="region" name="region" onchange="getarea();">
<option value="">请选择</option>
<option value="1">东北</option>
<option value="2">华北</option>
</select>
</td>
</tr>
<tr>
<td>
<select id="area" name="area">
</select>
</td>
</tr>
</table>
</div>
</body>
</html>
=============
b.php内容
<?php
$region_id = $_POST['region_id'];
//根据前台传过来的region_id来处理下拉框的内容.
//这里演示直接输出,你可以从数据库中读出来组织后再输出.
switch($region_id){
case 1:{
$area_option = "<option value='1'>辽宁</option><br><option value='2'>吉宁</option><br><option value='3'>黑龙江</option>";
echo $area_option;
break;
}
case 2:{
$area_option = "<option value='4'>北京</option><option value='5'>天津</option><option value='6'>河北</option>";
echo $area_option;
break;
}
}
?>
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用ajax <asp:UpdatePanel> 把两个下拉框包起来 在d1的selctchange事件中给到d2赋值,赋值前先清空d2的数据 ,不清空可能会累加
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
二级联动。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询