ASP.NET 中一个页面用JS调用另一个页面 另一个页面上按钮如何click事件
两一个页面的按钮如果是服务器控件的话,在后台它的点击事件里面写上:
ResponseWrite("<script>windowlocationhref='XXXXaspx'</script>");
就可以了
如果是html控件的话可以这样:
例子:<script
type="text/javascript">
function
tz()
{
windowlocation="helphtml";
}
</script>
</head>
<body>
<input
type="button"
onclick="tz()"
value="提交"/>
</body>
这样做,不太现实。
首先,您的按钮是控件来的,随非您将DIv也加入runat="server"
,把DIV显示出来,不过,这种方式,一般都不行,因为,当你把DIV显示出来了,那button按钮就会刷新页面一次,DIV也不会显示出来了。
您可以对button按钮加入OnClientClick事件,写JS显示出来。
想调用后台按钮的事件,不用AJAX,可以使用一种变通的方法。
比如你一个前台HTML控件 ID=ctl吧,在这里控件的onclick事件中绑定下面的函数同时假定已存在一个ID=btnTest的服务器控件(该控件有后台Click事件)
<input id='ctl' type='button' onclick='callOtherBtnEvent();' />
function callOtherBtnEvent(){
documentgetElementById('<%btnTestClientID%>')click();
}
后台public void btnTest_Click(object sender,EventArgs e)
{
ResponseWrite("<script>alert('调用了后台事件')</script>");
}
1、可以使用C#的Attributes,适合大部分控件
linkbuttonAttributesAdd("onclick","js方法名");//2、
testjs文件代码
function sayHello(str) {return "Hello," + str;
}
C#调用代码(在后台代码中如果找不到命名空间:MSScriptControlScriptControl)Microsoft Script 控件可作为一个控件或者作为一个独立的 Automation 对象创建出来。该特性可以使得用任何语言书写的应用程序都可以用 ScriptControl 宿主任何兼容的 scripting 语言。
private void button1_Click(object sender, EventArgs e){
string path = AppDomainCurrentDomainBaseDirectory + "testjs";
string str2 = FileReadAllText(path);
string fun = stringFormat(@"sayHello('{0}')" ,thistextBox1TextTrim());
string result = ExecuteScript(fun, str2);
MessageBoxShow(result);
}
/// <summary>
/// 执行JS
/// </summary>
/// <param name="sExpression">参数体</param>
/// <param name="sCode">JavaScript代码的字符串</param>
//// <returns></returns>
private string ExecuteScript(string sExpression, string sCode)
{
MSScriptControlScriptControl scriptControl = new MSScriptControlScriptControl();
scriptControlUseSafeSubset = true;
scriptControlLanguage = "JScript";
scriptControlAddCode(sCode);
try
{
string str = scriptControlEval(sExpression)ToString();
return str;
}
catch (Exception ex)
{
string str = exMessage;
}
return null;
}
0条评论