admin 管理员组

文章数量: 1184232


2024年3月7日发(作者:怎样用代码制作登录界面)

js调用cs中函数的方法 和 在cs中调用js函数的方法〔总结〕

js调用cs中函数的方法

在前台js代码里写上<%method();%>

举例:

cs文件中写的有

public void method()

{

....执行某些操作.

}

这个函数,然后在前台页面的js里面调用.

在cs中调用js函数

法一:erStartupScript(GetType(), "事件或属性名", "事件或属性内容");

示例:

protected void Page_Load(object sender, EventArgs e)

{

string ttt= "ttt";

string js= "";

erStartupScript(GetType(),"registerJS", js);

erStartupScript(GetType(),"runJS","istwo(" + ttt+ ")");

}

法二:控件("事件或属性名", "事件或属性内容");

示例:

("onclick", "return CheckInput()");

法三:直接把js代码当作字符串输出到客户端,让客户端来解释执行。

示例:

(" ")

======================================================

转: .net中前台javascript与后台c#函数相互调用

文章出处:DIY部落(/course/1_web/javascript/jsjs/200798/)

C#代码与javaScript函数的相互调用

问:

1.如何在JavaScript访问C#函数?

2.如何在JavaScript访问C#变量?

3.如何在C#中访问JavaScript的已有变量?

4.如何在C#中访问JavaScript函数?

问题1答案如下:

javaScript函数中执行C#代码中的函数:

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

2、在前台写一个js函数,内容为mentById("btn1").click();

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

示例:

代码

"/TR/xhtml1/DTD/">

列表页

OnClick="btn_Click" Text="" CssClass="display"" />

//注:此处Button控件不能加Visible="false"来隐藏,只能通过样式

方法二:1、函数声明为public

后台代码(把public改成protected也可以)

public string ss()

{

return("a");

}

2、在html里用<%=fucntion()%>可以调用

前台脚本

Transitional//EN"

<script language=javascript>

var a = "<%=ss()%>";

alert(a);

</script>

方法三:1、<script language="javascript">

<!--

function __doPostBack(eventTarget, eventArgument)

{

var theForm = 1; //指runat=server的form

theForm.__ = eventTarget;

theFrom.__ = eventArgument;

();

}

-->

</script>

<input id="Button1" type="button" name="Button1" value="按onclick="javascript:__doPostBack('Button1','')">

方法四:<script language="javascript">

function SubmitKeyClick()

{

if (e == 13)

{

Bubble = true;

Value = false;

="你要调用的函数名";

[0].submit();

}

}

</script>

<INPUT onkeypress="SubmitKeyClick()" id="aaa" type="text">

<input type="hidden" name="FunName"> 〈!--用来存储你要调用的函数 --〉

在.CS里有:

public Page_OnLoad()

{

if (!())

{

string strFunName=["FunName"]!=null?["FunName"]:"";

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

switch(strFunName)

{

case "enter()":

enter() ; //调用该函数

break;

case "其他":

钮"

//调用其他函数

break;

default:

//调用默认函数

break;

}

}

}

public void enter()

{

//……比如计算某值

}

问题2.如何在JavaScript访问C#变量?

答案如下:

方法一:1、通过页面上隐藏域访问<input id="xx" type="hidden" runat="server">

方法二:1、如后台定义了PUBLIC STRING N; 前台js中引用该变量的格式为'<%=n%>'或"+<%=n%>+"

方法三:1、或者你可以在服务器端变量赋值后在页面注册一段脚本

"<script language='javascript'>var temp=" + tmp + "</script>"

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

3.如何在C#中访问JavaScript的已有变量?

答案如下:

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

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

方法二:可以用cookie或session

4.如何在C#中访问JavaScript函数?

答案如下:

c#代码中执行javaScript函数:

方法一:1、erStartupScript("ggg","<script>SetVisible(1); </script>");

方法二:使用Literal类,然后

private void Button2_Click(object sender, rgs e)

{

string str;

str="<script language='javascript'>";

str+="selectRange()";

str+="</script>";

//e=true;

=str;

}

Script、ClientScript、

ScriptManager、ClientScriptManager 区别是什么

收藏

在 . 页面中,输入这四个东西:Script、ClientScript、ScriptManager、ClientScriptManager,均会出提示,表示它们均可用,那么它们有什么区别呢?

Script 与 ClientScript 的关系

这二者实际上是一个东西,后者只是省略了 Page。都是获取用于管理脚本、注册脚本和向页添加脚本的 ClientScriptManager 对象。

ScriptManager 与 ClientScriptManager 区别

他们的名称空间均是 。

ScriptManager 是用于管理 AJAX 脚本库和脚本文件;

ClientScriptManager 用于管理普通的 script,就比如向客户端输出一个

ClientScript 与 ClientScriptManager 区别

ClientScript 是 ClientScriptManager 的对象,ClientScriptManager 是类。

erClientScriptBlock 与 erStartupScript(也可省略

Page)

微软已经不推荐这样写,而应该是 erClientScriptBlock 或

erStartupScript。

与Script之间的区别

2010年05月24日 星期一 13:41

与 erStartupScript

erClientScriptBlock 之间的区别

方法1,使用,这种方法会把JS代码写在页面的最顶部(的前面):

("");

方法2,使用RegisterStartupScript,这种方法会把JS代码嵌入在页面的底部、表单的最后

(前面),适用于要在页面控件加载完成后运行的JS代码 :

page = ()r;

if (!tupScriptRegistered(e(),"clientScript"))

erStartupScript(e(), "clientScript", "");

方法3,使用RegisterClientScriptBlock,这种方法会把JS代码嵌入在页面的顶部、表单的最前 (

后面),适用于要在控件加载前执行的JS代码,类似于上面的方式 :

page = ()r;

if (!ntScriptBlockRegistered(e(),"clientScript"))

erClientScriptBlock(e(), "clientScript", "");

那么,方法2和方法3之间有何不同呢?主要区别在于,RegisterStartupScript 方法是将

JavaScript 嵌入到 页面的底部,恰好位于关闭元素

的前面。RegisterClientScriptBlock 方法是将 JavaScript 嵌入到页面中开启元素
的紧后面。那么,这有何不同呢?正如我们将要看到的,这有很大的不同。

就此列举一例,以下是在页面加载到浏览器时,将焦点置于该页面上的一个文本框中的方法 -

使用利用了 RegisterStartupScript 方法的 Visual Basic:

erStartupScript(e(), "Testing", _

"[0][TextBox1].focus();", True)

由于在浏览器运行到页面底部并执行此小段 JavaScript 时,就已生成了页面上的文本框,并已将其放到了页面中,因此,此方法运行正常。但是,如果不按照上述方法,而编写如下代码(使用 RegisterClientScriptBlock 方法):

erClientScriptBlock(e(), "Testing", _

"[0][TextBox1].focus();", True)

文本框控件将不会获得焦点,且会在页面上生成一个 JavaScript 错误

Page_load调用JS函数以及confirm的用法

Page_load调用JS函数以及confirm的用法

protected void Page_Load(object sender, EventArgs e)

{

if (!IsPostBack)

{

//erStartupScript("","");

erStartupScript("", "");

}

}

protected void Button1_Click(object sender, EventArgs e)

{

erStartupScript("", "");

("");

}

2.0异步页面

当接收到一个页面请求时, 会从一个线程池中获取一个线程,并将页面请求分配给该线程。一个普通的,或者说是同步的页面在请求期间会占用线程,以防止线程被用于处理其他请求。如果同 步请求变为 I/O 密集状态,例如,当该请求调用一个远程 Web 服务或查询远程数据库并等待调用返回时,则分配给它的线程在调用返回前会始终处于闲置状态。这种情况会限制可伸缩性,因为线程池中的可用线程是有限的。如 果处理请求的所有线程都因等待 I/O 操作的完成而阻塞,则会有多余的请求排队等待这些线程的释放。最好的情况是出现吞吐量降低,因为需要等待更长的等待才能处理请求。最糟糕的情况是队列被填 满而 无法处理后续请求,并提示 503“服务器不可用”错误。

异步页面的出现为解决 I/O 密集型的请求所导致的此类问题提供了简洁的方案。页面处理要在线程池中的一个线程上进行,但是当一个异步 I/O 操作响应来自 的信号并开始进行时,该线程会返回原先的线程池。操作完成后, 会从线程池中获取另一个线程来完成处理请求。这样,线程池的线程使用率得到提高,可伸缩性也因此得以增强。那些本来要等待 I/O 操作完成而阻塞的线程此时可以用于处理其他请求。这样做的直接好处就是避免请求执行冗长的 I/O 操作,因此可以快速进出管道。等待进入管道的时间过长会对此类请求的执行造成的很大的负面影响。

以上文字摘自:/msdnmag/issues/05/10/WickedCode/?loc=zh#S1

下面是一个具体异步调用的示例。

<%@ Page Language="C#" AutoEventWireup="true" CodeFile=""

Inherits="Async" Async="true" ValidateRequest="false" EnableEventValidation="false"

EnableViewState="false" %>

"/TR/xhtml1/DTD/">

Untitled Page

/>

using System;

using ;

using uration;

using tions;

using ;

using ty;

using ;

using trols;

using ts;

using ntrols;

using ;

public partial class Async :

{

protected void Page_Load(object sender, EventArgs e)

{

}

protected void btnAnsyc_Click(object sender, EventArgs e)

{

reRenderCompleteAsync(new BeginEventHandler(BeginRequest), new

EndEventHandler(EndRequest));

}

IAsyncResult BeginRequest(object sender, EventArgs e, AsyncCallback _callback, object

state)

{

_request = ("/");

return _etResponse(_callback, state);

}

void EndRequest(IAsyncResult _res)

{

string text;

using (WebResponse _Response = _Response(_res))

{

using (Reader reader = new

Reader(_ponseStream(), t))

{

text = End();

}

}

= text;

}

WebRequest _request;

}


本文标签: 页面 线程 请求 函数