最近在一个项目中,由于根据需求,需要增加一个概览页面,也就是最高权限用户可以对全局概况有一个总的了解,下面就来简单介绍下,主要是对于其中实现的部分小技巧做一下总结。贴图示例如下:
在这个页面中一个frameset里有三个frame,分为左中右三个部分,中间是显示部分,右边的上半部分是快速查询部分,里面主要是由三个下拉框和一个单选框组成,通过点击按钮将参数传递到另外一个页面,并且这个页面是在中间的frame里显示最终的结果。
看代码:
<script type="text/javascript" language="javascript">
function openWindow()
{
var year = document.getElementById("ddlYear").options[document.getElementById("ddlYear").selectedIndex].text;
var city = document.getElementById("ddlCity").options[document.getElementById("ddlCity").selectedIndex].value;
var county = document.getElementById("ddlCounty").options[document.getElementById("ddlCounty").selectedIndex].value;
var rbltable =document.getElementById("rblType");
var rbs= rbltable.getElementsByTagName("INPUT");
for(var i = 0;i<rbs.length;i++)
{
if(rbs[i].checked)
{
var option =rbltable.cells[i].innerText;
}
}
var url = "result.aspx?year=" + year + "&city=" + city + "&county=" + county + "&type=" +escape(option);
window.open(url,'center','height=100%,width=100%,status=no,toolbar=no,menubar=no,scrollbars=no,location=no');
}
</script>
...
<input type="button" value="查询" OnClick="openWindow()" />
....
以上是在js中获取服务器端控件dropdownlist和radiobuttonlist控件值的方法:
dropdownlist控件:
var city = document.getElementById("ddlCity").options[document.getElementById("ddlCity").selectedIndex].value;
------------------------------------------------------------------------------------------------------------------------------------radiobuttonlist控件:
var rbltable =document.getElementById("rblType");
var rbs= rbltable.getElementsByTagName("INPUT");
for(var i = 0;i<rbs.length;i++)
{
if(rbs[i].checked)
{
var option =rbltable.cells[i].innerText;
}
}
这里其实可以在后台cs文件里获取到控件的值,并实现跳转,不错,是可以,但是会有点显示的小问题,就是按钮点击过后,radiobuttonlist控件里的文字变大了,很是难看。
后台里获取值很简单:
string year = Request.QueryString["year"].ToString();
string city = Request.QueryString["city"].ToString();
string county = Request.QueryString["county"].ToString();
string type = Server.UrlDecode(Request.QueryString["type"].ToString()).ToString();
然后做简单处理即可。中间的frame后来的显示效果如下图: