您的位置:首页 > 其它

Exchange server 之一 Exchange 2003+sp2部署

2009-08-11 10:02 429 查看
原文地址:http://blog.csdn.net/wonsoft/article/details/2595743

一、javascript调用C#代码解决方案
// 第一种情况:
1.后台方法:

protectedstringCsharpVoid(stringstrCC)

{

returnstrCC;

}

2.javascript 调用

<scriptlanguage="javascript">

<!--

vars="<%=CsharpVoid("www.baidu.com")%>";

document.write(s);

//-->

</script>

// 第二种情况:
1.后代码:

protectedvoidCsharpVoid()

{

stringstrCC="www.baidu.com";

Response.Write(strCC);

}

2.调用方法:CsharpVoid()

<scriptlanguage="javascript">

<!--

document.write("<%CsharpVoid();%>");

//-->

</script>

可在页面中放一个按钮,把它设置为不可见style="display:none",然后,用脚本让此按钮点击

document.all("button1").click();

在此按钮的C#后台中写事件代码,这就是最简单的脚本调用C#方法.

二、C#与Javascript变量、函数之间的相互调用
问题1:在JavaScript访问C#函数
方法一

1、首先建立一个按钮,在后台将调用或处理的内容写入button_click中;

2、在前台写一个js函数,内容为

view
plain

document.getElementById("btn1").click();

3、在前台或后台调用js函数,激发click事件,等于访问后台c#函数;
方法二

1、后台代码函数声明为public(protected也可以)

publicstringss()

{

return("a");

}

2、前台:在html脚本里用<%=fucntion()%>可以调用

<scriptlanguage=javascript>

<!--

vara="<%=ss()%>";

alert(a);

//-->

</script>

方法三

<scriptlanguage="javascript">

<!--

function__doPostBack(eventTarget,eventArgument)

{

vartheForm=document.Form1;//指runat=server的form

theForm.__EVENTTARGET.value=eventTarget;

theFrom.__EVENTARGUMENT.value=eventArgument;

theForm.submit();

}

//-->

</script>

<inputid="Button1"type="button"name="Button1"value="按钮"onclick="javascript:__doPostBack('Button1','')"/>

ASPX页面有包含asp:LinkButton或者带有AutoPostBack属性且其值为true的服务器控件时,ASP.NET会自动为页面生成下面的脚本:

<inputtype="hidden"name="__EVENTTARGET"id="__EVENTTARGET"value=""/>

<inputtype="hidden"name="__EVENTARGUMENT"id="__EVENTARGUMENT"value=""/>

这两个参数分别由隐藏的两个表单域__ EVENTTARGET和__ EVENTARGUMENT保存。

这两个隐藏的表单可以查找引起页面回送的控件ID和回送时的参数:

stringtarget=Request.Params["__EVENTTARGET"];

stringargs=Request.Params["__EVENTARGUMENT"];

asp:Button和asp:ImageButton不是使用__doPostBack回送页面,所以使用这两个控件回送页面时,上面的代码是无效的。
方法四:1、前台:

<scriptlanguage="javascript"><!--

functionSubmitKeyClick()

{

if(event.keyCode==13)

{

event.cancelBubble=true;

event.returnValue=false;

document.all.FunName.value="你要调用的函数名";

document.form[0].submit();

}

}

//-->

</script>

<INPUTonkeypress="SubmitKeyClick()"id="aaa"type="text">

<inputtype="hidden"name="FunName"><!--用来存储你要调用的函数-->

2、后台CS代码:

publicPage_OnLoad()

{

if(!Page.IsPost())

{

stringstrFunName=Request.Form["FunName"]!=null?Request.Form["FunName"]:"";

//根据传回来的值决定调用哪个函数

switch(strFunName)

{

case"enter()":

enter();//调用该函数

break;

case"其他":

//调用其他函数

break;

default:

//调用默认函数

break;

}

}

}

publicvoidenter()

{

//……比如计算某值

}

问题2:在JavaScript访问C#变量

方法一:
1、通过页面上隐藏域访问

<inputid="xx"type="hidden"runat="server">

方法二

1、如后台定义了:

publicstringn;

2、前台js中引用该变量的格式为

view
plain

'<%=n%>'

//或

"+<%=n%>+"

//例:

varss="<%=n%>"

方法三:在服务器端变量赋值后在页面注册一段脚本

view
plain

"<scriptlanguage='javascript'>vartemp="+tmp+"</script>"

tmp是后台变量,然后js中可以直接访问temp获得值。

问题3:在C#中访问JavaScript的已有变量
方法一:

1、前台使用静态文本控件隐藏域,将js变量值写入其中;

2、后台用request["id"]来获取值;

方法二:
可以用cookie或session问题4:在C#中访问JavaScript函数
方法一:


view
plain

Page.RegisterStartupScript("ggg","<script>SetVisible(1);

</script>");

方法二:
1、前台使用Literal类:

view
plain

<asp:LiteralID="Literal1"runat="server"></asp:Literal>

2、后台CS代码:

view
plain

privatevoidButton2_Click(objectsender,System.EventArgse)

{

stringstr;

str="<mce:scriptlanguage='javascript'><!--

";

str+="selectRange()";

str+="

//--></mce:script>";

//Literal1.Visible=true;

Literal1.Text=str;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐