Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 客户端脚本并获取回调事件引用。_Asp.net_Ajax - Fatal编程技术网

Asp.net 客户端脚本并获取回调事件引用。

Asp.net 客户端脚本并获取回调事件引用。,asp.net,ajax,Asp.net,Ajax,谁能帮我逐行描述一下下面的代码 protected override void OnPreRender(EventArgs e) { String eventRef = Page.ClientScript.GetCallbackEventReference(this, "", "", ""); // Register include file String includeScript = Page.Reso

谁能帮我逐行描述一下下面的代码

protected override void OnPreRender(EventArgs e)
        {
            String eventRef = Page.ClientScript.GetCallbackEventReference(this, "", "", "");

            // Register include file
            String includeScript = Page.ResolveClientUrl("~/ClientScripts/AjaxValidator.js");
            Page.ClientScript.RegisterClientScriptInclude("AjaxValidator", includeScript);

            // Register startup script
            String startupScript = String.Format("document.getElementById('{0}').evaluationfunction = 'AjaxValidatorEvaluateIsValid';", this.ClientID);
            Page.ClientScript.RegisterStartupScript(this.GetType(), "AjaxValidator", startupScript, true);

            base.OnPreRender(e);
        }
GetCallbackEventReference
方法使用JavaScript
WebForm\u DoCallback
函数返回一个字符串,该函数执行对服务器的带外回调。它还向客户端呈现一个脚本标记,其源属性设置为WebResource.axd。axd是一个HTTP处理程序,支持下载嵌入程序集中的资源。该资源包含
WebForm\u DoCallback
功能。带有
WebForm\u DoCallback
函数的eventRef字符串永远不会被注入客户端,参数都是空的,因此我假设此行仅用于将WebResource.axd输出到页面

String includeScript=Page.ResolveClientUrl(“~/ClientScripts/AjaxValidator.js”)
Page.ClientScript.RegisterClientScriptInclude(“AjaxValidator”,includeDescript)

第一行获取外部JavaScript文件“AjaxValidator.js”的相对路径。第二行将源设置为ResolveClientUrl返回的外部JavaScript文件路径的客户端脚本标记注入

String startupScript=String.Format(“document.getElementById(“{0}”).evaluationfunction
='AjaxValidatorEvaluateIsValid';”,this.ClientID)
Page.ClientScript.RegisterStartupScript(this.GetType(),“AjaxValidator”,startupScript)

最后两行中的第一行创建要呈现给客户端的JavaScript代码。
RegisterStartupScript
方法添加的脚本块在页面完成加载但引发页面的OnLoad事件之前执行。“evaluationfunction”被设置为当页面在客户端上验证时要调用的方法,它由WebUIValidation.js脚本中的
ValidatorValidate
方法调用(WebResource.axd也用于检索此文件)。这句话断章取义。我假设PreRender事件是从BaseValidator类继承的自定义验证器控件的一部分

String eventRef = Page.ClientScript.GetCallbackEventReference(this, "", "", "");