zoukankan
html css js c++ java
xmlhttp无刷新二级联动支持firefox
javascript代码:
<
script language
=
"
javascript
"
type
=
"
text/javascript
"
>
//
jb函数会根据不同的浏览器初始化个xmlhttp对象
function
jb()
{
var
A
=
null
;
try
{
A
=
new
ActiveXObject(
"
Msxml2.XMLHTTP
"
);
}
catch
(e)
{
try
{
A
=
new
ActiveXObject(
"
Microsoft.XMLHTTP
"
);
}
catch
(oc)
{
A
=
null
}
}
if
(
!
A
&&
typeof
XMLHttpRequest
!=
"
undefined
"
)
{
A
=
new
XMLHttpRequest()
}
return
A
}
//
下面Go函数是父列表框改变的时候调用,参数是选择的条目
function
XmlPostT(obj)
{
//
得到选择框的下拉列表的value
var
svalue
=
obj;
//
定义要处理数据的页面
var
weburl
=
"
?yearid=
"
+
svalue;
//
初始化个xmlhttp对象
var
xmlhttp
=
jb();
//
提交数据,第一个参数最好为get,第三个参数最好为true
xmlhttp.open(
"
get
"
,weburl,
true
);
//
alert(xmlhttp.responseText);
//
如果已经成功的返回了数据
xmlhttp.onreadystatechange
=
function
()
{
if
(xmlhttp.readyState
==
4
)
//
4代表成功返回数据
{
var
result
=
xmlhttp.responseText;
//
得到服务器返回的数据
//
先清空dListChild的所有下拉项
document.getElementById(
"
ddlnos
"
).length
=
0
;
//
给dListChild加个全部型号的,注意是Option不是option
document.getElementById(
"
ddlnos
"
).options.add(
new
Option(
"
请选择刊号
"
,
""
));
if
(result
!=
""
)
//
如果返回的数据不是空
{
//
把收到的字符串按照,分割成数组
var
allArray
=
result.split(
"
,
"
);
//
循环这个数组,注意是从1开始,因为收到的字符串第一个字符是,号,所以分割后第一个数组为空
for
(
var
i
=
0
;i
<
allArray.length;i
++
)
{
//
在把这个字符串按照|分割成数组
var
thisArray
=
allArray[i].split(
"
|
"
);
//
为dListChild添加条目
document.getElementById(
"
ddlnos
"
).options.add(
new
Option(thisArray[
1
].toString(),thisArray[
0
].toString()));
}
}
}
}
//
发送数据,请注意顺序和参数,参数一定为null或者""
xmlhttp.send(
null
);
}
function
option_gourl(str)
{
window.location.href
=
str;
}
<
/
script>
aspx代码:
<
tr
>
<
td
height
="30"
align
="center"
>
<
asp:DropDownList
ID
="ddlyears"
runat
="server"
AppendDataBoundItems
="True"
>
<
asp:ListItem
Value
=""
>
请选择年份
</
asp:ListItem
>
</
asp:DropDownList
>
</
td
>
<
td
align
="center"
><
asp:DropDownList
ID
="ddlnos"
runat
="server"
AppendDataBoundItems
="True"
>
<
asp:ListItem
Value
=""
>
请选择刊号
</
asp:ListItem
>
</
asp:DropDownList
></
td
>
</
tr
>
c#代码:
protected
void
Page_Load(
object
sender, EventArgs e)
{
if
(
!
IsPostBack)
{
this
.ddlnos.Attributes.Add(
"
onchange
"
,
"
option_gourl(this.value)
"
);
this
.ddlyears.Attributes.Add(
"
onchange
"
,
"
XmlPostT(this.value)
"
);
BinData();
if
(yearid
!=
""
)
{
this
.NoBind(yearid);
}
}
}
private
string
yearid
{
get
{
if
(ViewState[
"
yearid
"
]
!=
null
&&
ViewState[
"
yearid
"
].ToString()
!=
""
)
{
return
ViewState[
"
yearid
"
].ToString();
}
else
{
if
(Request[
"
yearid
"
]
!=
null
&&
Request[
"
yearid
"
].ToString()
!=
""
)
{
return
Request[
"
yearid
"
];
}
else
{
return
""
;
}
}
}
set
{
ViewState[
"
yearid
"
]
=
value;
}
}
private
void
NoBind(
string
strid)
{
WebClass.ArticleList tmp
=
new
WebClass.ArticleList();
DataTable dt
=
tmp.ListIndexYear(strid);
string
mystr
=
""
;
if
(dt.Rows.Count
!=
0
)
{
for
(
int
i
=
0
; i
<
dt.Rows.Count; i
++
)
{
mystr
+=
"
,
"
+
dt.Rows[i][
0
].ToString()
+
"
|
"
+
dt.Rows[i][
1
].ToString();
}
mystr
=
mystr.Substring(
1
);
}
//
把从数据库得到的信息输出到客户端
Response.Write(mystr);
//
输出完成关闭Response,以免造成不必要的输出
Response.Flush();
Response.Close();
//
this.Response.Write(mystr);
//
this.Response.End();
}
查看全文
相关阅读:
pip 更新下载源
Image-match
Laravel之事务与锁
Laravel之vue操作
html 固定居中
vue状态管理(vuex)
vue兄弟组件的相互通讯(vuex方式)
vue兄弟组件之间的通信(bus.js)方法
webapi使用过滤器拦截客户端传来的参数
webapi跨域,服务器上使用session
原文地址:https://www.cnblogs.com/cnaspnet/p/1215375.html
最新文章
资深嵌入式工程师分享职场必知9条军规
单片机和Linux都想学_换个两全的方法学习单片机
单片机知识是Linux驱动开发的基础之一
如何让虚拟机的Ubuntu上网?
2017- 韦东山视频学员成果精选(四)
Ubuntu 16.04 如何使用Samba服务器
编译安装apache2.2对应的mod_proxy_fcgi.so模块步骤,因为使用apache--phpfpm 需要这个
php多版本:已存在php5场景下,编译安装php7,实现apache2.2--php-fpm7通信
php安装扩展时报错:make: *** [mbstring.lo] Error 1,解决方案
phpize安装php扩展(本文章以php7扩展mbstring为案例)
热门文章
Linux命令之top命令介绍
Linux之cat的使用介绍
php-fpm慢查询日志
Mysql(Mariadb)之SET语法分析以及系统变量和用户变量分析(英文&中文)(转载)
Mysql(Mariadb)数据库之Information Schema 库中GLOBAL_VARIABLES表 and SESSION_VARIABLES 表分析
pip之相关命令
python之elasticsearch
初步接触百度飞桨
腾讯云极验验证码(防火墙验证码)
urllib.error.HTTPError: HTTP Error 403: Forbidden
Copyright © 2011-2022 走看看