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();
}
查看全文
相关阅读:
315. 计算右侧小于当前元素的个数
55. 跳跃游戏
<leetcode c++>72. 编辑距离
"NTLDR is missing"和"NTLDR is compressed"的解决办法
Windows Live Mail不能发送图片附件的2种解决方法
【】使用word2010同步更新自己在不同网站的博客
新浪博客测试
【】引用 CSS行高line-height属性理解及应用
"NTLDR is missing"和"NTLDR is compressed"的解决办法
排序算法-冒泡排序(javascript)
原文地址:https://www.cnblogs.com/cnaspnet/p/1215375.html
最新文章
IDEA-Maven项目配置
Maven本地仓库配置
JPanel简单使用
前端通过将json转成excel文件下载
vue+element-ui动态生成多级表头,并且将有相同字段下不同子元素合并为同一个
vue A对象赋值给B对象,修改B属性会影响到A问题
vue+element-ui 实现table单元格点击编辑,并且按上下左右键单元格之间切换
vue-cli开发-搭建项目(一)
Vue.js与React的全面对比
HTML 5 全局 contenteditable 属性
热门文章
CSS完美兼容IE6/IE7/IE8/IE9/IE10的通用方法
层叠轮播图的简易制作
文本向上滚动
<leetcode c++> 394. 字符串解码
动态规划——博弈
字典树、前缀树
动态规划——《背包问题》
双指针专题
优先队列——heap
416. 分割等和子集
Copyright © 2011-2022 走看看