1 父子页面的值传递
两种方式:
1)在父页面可以通过pagename操作子页面。
pagename = window.open('page ','name','width,height'); pagename.focus();
在子页面可以通过parents.Label.innerText = '"value"'
2)通过模态对话框返回值。当执行模态对话框时,父页面将停止操作。
在父页面
var result = showModalDialog(url,window,"dialogWidth:"+width+"px;dialogHeight:"+height+"px;help:no;scroll:no;status:no");
alert(result)
在子页面
3) 通过vArguments将父窗体的值传递到子窗体
modal.htm
4) 子窗体使父窗体刷新
opener.window.location.reload();
5) 避免提交时弹出另一个页面
标签里加入
6) 避免模式窗体不刷新
Response.Expires = -1
Response.ExpiresAbsolute = Now() - 1
Response.cachecontrol = "no-cache"
2 将javascript值赋给session
新建一个框架,不让他显示出来。在页面里
document.all('djTmp').src="djTmp.aspx?name=RoleName&value=" + document.all('cboRole').value
在框架网页里
Dim strName As String = Request.QueryString("name")
Dim strValue As String = Request.QueryString("value")
Session(strName) = strValue
3 服务器控件取js值。
新建一隐藏控件。将其设为服务器端运行,这样通过脚本和服务器都可以访问。
参考:http://neozhu.cnblogs.com/archive/2005/07/28/201838.aspx
//==========================================================================
//
// 代码描述:将某个datagrid中模板的中checkbox置为相反状态
//
// 传入参数:Form --- 当前页面ID 例: xt_function_m
// CheckBox --- 被选择的字符 例: 'CheckBoxSelect'
//
// 返回参数:无
//
//
//==========================================================================
function SelectTitleAll(Form, CheckBox)
{
var i
var intLength = Form.elements.length
for (i = 0; i < intLength; i ++)
{
var strType = Form.elements[i].type
var strName = Form.elements[i].name
if (strType == 'checkbox' && strName.lastIndexOf(CheckBox) == strName.length - CheckBox.length)
{
Form.elements[i].checked = !Form.elements[i].checked;
}
}
}
//==========================================================================
//
// 代码描述:将表单中所有的checkbox都设置为打勾状态
//
// 传入参数:Form --- 当前页面ID 例: xt_function_m
// CheckBox --- 被选择的字符 例: 'CheckBoxSelect'
//
// 返回参数:无
//
//
//==========================================================================
function SelectAll(Form, CheckBox)
{
var i
var intLength = Form.elements.length
for (i = 0; i < intLength; i ++)
{
var strType = Form.elements[i].type
if (strType == 'checkbox')
{
Form.elements[i].checked = true;
}
}
}
//==========================================================================
//
// 代码描述:去除字符串左边空格
//
// 传入参数:str --- 去除之前的字符串 例: ‘ OK’
//
//
// 返回参数:去出以后的字符串
//
//
//==========================================================================
function jsLTrim(str)
{
var rtnStr;
rtnStr=""
for (var i = 0; i < str.length; i ++)
{
if (str.charAt(i) != " ")
{
rtnStr = str.substr(i);
break;
}
}
return rtnStr;
}
//==========================================================================
//
// 代码描述:去除字符串右边空格
//
// 传入参数:str --- 去除之前的字符串 例: ‘ OK’
//
//
// 返回参数:去出以后的字符串
//
//
//==========================================================================
function jsRTrim(str)
{
var rtnStr;
rtnStr = ""
for (var i = str.length-1; i >= 0; i --)
{
if (str.charAt(i) != " ")
{
rtnStr = str.substring(0,i+1);
break;
}
}
return rtnStr;
}
//==========================================================================
//
// 代码描述:去除字符串两边空格
//
// 传入参数:str --- 去除之前的字符串 例: ‘ OK ’
//
//
// 返回参数:去出以后的字符串
//
//
//==========================================================================
function Trim(str)
{
return(jsLTrim(jsRTrim(str)));
}
//==========================================================================
//
// 代码描述:将回车按键 转为 Tab按键
//
// 传入参数:
//
//
// 返回参数:
//
//
//==========================================================================
function Key_EnterToTab()
{
if(event.keyCode == 13)
{
event.keyCode = 9;
}
}
//==========================================================================
//
// 代码描述:判断日期的大小
//
// 传入参数: Date1 ---日期1 例:'2004-1-1'
// 传入参数: Date2 ---日期2 例:'2004-2-1'
// 传入参数: Compare ---比较符号 例如 '>','<','='
//
// 返回参数: bool--是否成立
//
//==========================================================================
function Est_Date(Date1,Date2,Compare)
{
switch(Compare)
{
case '>':
if (Date1>Date2)
{
return true;
}
else
return false;
break;
case '<=':
if (Date1<=Date2)
{
return true;
}
else
return false;
break;
case '=':
if (Date1==Date2)
{
return true;
}
else
return false;
break;
}
}
//==========================================================================
//
// 代码描述:判断日期的大小
//
// 传入参数: url 例:
// 传入参数: 参数名称 例:bs
// 返回参数: 参数值
//
//
//==========================================================================
function QueryString(url,sName)
{
var sSource = url;
var sReturn = "";
var sQUS = "?";
var sAMP = "&";
var sEQ = "=";
var iPos;
iPos = sSource.indexOf(sQUS);
var strQuery = sSource.substr(iPos, sSource.length - iPos);
var strLCQuery = strQuery.toLowerCase();
var strLCName = sName.toLowerCase();
iPos = strLCQuery.indexOf(sQUS + strLCName + sEQ);
if (iPos == -1)
{
iPos = strLCQuery.indexOf(sAMP + strLCName + sEQ);
if (iPos == -1)
return "";
}
sReturn = strQuery.substr(iPos + sName.length + 2,strQuery.length-(iPos + sName.length + 2));
var iPosAMP = sReturn.indexOf(sAMP);
if (iPosAMP == -1)
return sReturn;
else
{
sReturn = sReturn.substr(0, iPosAMP);
}
return sReturn;
}
//==========================================================================
//
// 代码描述:判断多行文本框的是否超出字符
//
// 传入参数: txt 例:form.alltxt 多行文本框对象
// 传入参数: maxlen 例:30 允许最大的多行文本的长度
// 返回参数: 无
//
//
//==========================================================================
function JudTxtValue(txt,maxlen)
{
if (txt.value.length>maxlen)
{
alert('文本框输入超出'+maxlen+'个长度');
txt.value=txt.value.substr(0,maxlen);
}
}5,在客户端javascript里操作服务端控件:
this.Button1.Attributes.Add("onclick","return upchang();");
function upchang()
{
var i=document.Form1.all['ListBox1'].selectedIndex;
if(i>0)
{
var val=document.Form1.all['ListBox1'].item(i-1).value;
var txt=document.Form1.all['ListBox1'].item(i-1).text;
document.Form1.all['ListBox1'].item(i-1).value=document.Form1.all['ListBox1'].item(i).value;
document.Form1.all['ListBox1'].item(i-1).text=document.Form1.all['ListBox1'].item(i).text;
document.Form1.all['ListBox1'].item(i).value=val;
document.Form1.all['ListBox1'].item(i).text=txt;
document.Form1.all['ListBox1'].selectedIndex=i-1;
}
}