mikebai.com

  • Home
  • dev
  • DotNET
  • M365
  • 搞笑
  • 杂七杂八
  • FocusDict
個人BLOG
it developer
DotNET

ASP.NET页面跳转后再返回原页面保持最初结果的处理办法

现在用ASP.NET实现一个任务就是解决页面返回的问题,开始他们使用的全是goback();的方法。按照项目的设计,每一个功能都是跳转到一个新的页面(不是在新窗口中打开)。 这样最后使用起来就会有一个很不好的体验。比如,我进入到一个页面,选择了N多查询条件以后,会有个结果列表,点具体信息的时候,会跳转到一个详细信息页面(非新窗口),我在这个详细页面进行信息修改。这个时候操作完毕。需要返回到结果列表页面。就需要点2次按钮。这样操作者就会觉得很麻烦。所以我建议不使用我们项目现在用的这个方法,任何新功能都跳转到一个新的页面。 推荐几种方法 1:在同一个页面,工具功能,显示和隐藏不同的PANL。不涉及到页面之间传值 2:在新窗口中打开 3:使用弹出层 4:视图状态 5:post数据到详细页面,然后在详细页点返回的时候再post回来,不过这样就不太符合asp.net了 但是我的项目不可能大改,只能在原来的基础上改了。改的办法有很多种 1:SESSION,不推荐,会影响程序性能 2:URL参数:不安全,因为参数会暴露在外面 3:通过HttpContext.Current.Handler来获取附上一小段代码,让大家理解 Codepublic partial class Serach : System.Web.UI.Page{    protected void Page_Load( object sender, EventArgs e )    {        if ( !IsPostBack )        {            Result result;            if ( HttpContext.Current.Handler is Result )            {                result = HttpContext.Current.Handler as Result;                Response.Write( result.text );            }        }    }     public string datatime    {        get { return this.TextBox1.Text; }        set { this.TextBox1.Text = value; }    }     protected void Button1_Click( object sender, EventArgs e )    {        Server.Transfer( "Result.aspx" );    }}//查询页面public partial class Result : System.Web.UI.Page{       protected void Page_Load(object sender, EventArgs e)    {        if ( !IsPostBack )        {            Serach serach;            if ( HttpContext.Current.Handler is Serach )            {                serach = HttpContext.Current.Handler as Serach;                this.HiddenField1.Value=serach.datatime ;            }        }    }     public string text    {        get { return this.HiddenField1.Value; }        set { this.HiddenField1.Value = value; }    }    protected void btnText_Click( object sender, EventArgs e )    {        Server.Transfer( "Serach.aspx" );    }} //结果页面 这样你可以保存你最初的查询SQL语句,返回的时候再重新加载SQL语句   4:Server.transfer配合previouspage属性page类有个previouspage属性,这样你可以获取上个页面的信息了 if ( Page.PreviousPage != null ) {      ContentPlaceHolder content = ( ContentPlaceHolder ) Page.PreviousPage.Master.FindControl( "UIContentAreaPlaceHolder" );            //Response.Write( hf.Value );  

2009-11-05 0comments 95hotness 0likes mikebai Read all
DotNET

asp.net 返回上一页的实现方法小集

返回上一页的这个东东在我们做项目的时候一般是用于填写完表单后确认的时候,有对原来输入的数据进行修改时用的,或者是因为网站为了方便浏览者而有心添加 的一个东东,一般这种功能的实现在ASP.net中都是用一个button的控件来实现的,实现的方法有很多,今天恰好在做项目时碰到要用这个东东,我就 把能实现" 返回上一页","返回前一页"的几种方法总结了一下,供大家学习之用,请多多指教:0) 其实要实现这个功能主要还是要用到javascript 方法一: 在asp.net的aspx里面的源代码中<input type="button onclick="javascript:window.history.go(-1);"value="返回上一页"> 浅析:这个是用了HTML控件,通过一个onclick的事件,调用了javascript中的一个方法就可以了。这个是最简单的了,也同样适用于静态页面,ASP页面等。 方法二: 利用Reponse.write如果你对ASP有一定的了解,那么对Response.write这个东东就不会陌生了,方法一是直接有HTML页面中实现,则这个则是在后台环境中实现(这个说法好像不是很规范,呵呵) Response.write("<script language=javascript>history.go(-2);</script>) <a   href="#"   onclick="javascript:history.back();">返回前一页</a> 这里为会么要采用-2的值呢,我个人认为是这样的:因为在asp.net中的页面,当你按下一个button后,由于页面中会实现page.postback的缘故,实际上在这其中是刷新了两次页面,我们要的是第一次的,所以就...... 方法三 利用Response.Redirect() 或 server.transfer() 在page_load中加入if(!IsPostBack)           ViewState["retu"]=Request.UrlReferrer.ToString();       而在在返回按钮事件中     Response.Redirect(ViewState["retu"].ToString());     或Server.Transfer   (ViewState["retu"].ToString());   浅析:Request.UrlReferrer可以获取客户端上次请求的url的有关信息,我们在使用这个的时候最好对其进行一个判断 if(ViewState["UrlReferrer"]!=null)         Response.Redirect(ViewState["UrlReferrer"].ToString(); else{Response.write("对不起,当前是最前页码“); 这样才好使一点点喔} 以下这段来自:http://stswordman.cnblogs.com/archive/2006/06/12/423910.html在使用Request.UrlReferrer时还要注意: 1.  如果上一页面使用document.location方法导航到当前页面,Request.UrlReferrer返回空值2.   如果有A,B两个页面,在浏览器中直接请求A页面,在A页面的中Page_Load事件中导航到B 页面,则     Request.UrlReferrer返回空。因为 在Page_load事件中页面还未初始化,所以无法记录当前页的信息,导航到b页面也就 无法获得上一页面的信息   3.  点击刷新按钮不会改变Request.UrlReferrer 方法四: 这个方法估计很少人用,不过我试了一下,也还很不错喔 在button的onClick事件中输入 this.RegisterClientScriptBlock("e", "<script language=javascript>history.go(-2);</script>"); 一样可以 返回到上一页 方法五 <a href=<%=request.servervariable("http_Referre)%> <asp:image id="imageback" visible = true" imagurl="上一页" runat="server"/></a> 这 里还要啰嗦一下用Javascript来实现与用Response.redirect()来实现的一点点区别,如果你是用天表单的时候想保留你填的数据, 那就要用history.go();这个东东,如果你只是直接返回不用做任何操作,你就可以用reponse.redirect()了.  本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/mhkbluesky/archive/2008/04/12/2284462.aspx

2009-11-05 0comments 92hotness 0likes mikebai Read all
DotNET

ASP.NET 中处理页面“回退”的方法

我们在编写基于 ASP.NET 的应用程序时,如果代码执行出错或检测到异常,一般会提示用户“返回”或“回退”,或者在多步操作、列表/详细的查看界面中,也会给用户提供回退到上一页面的链接,对于这种情况,大家很快就会想到的简单做法就是利用 Javascript 来实现,即 history.go(-1) ,但是由于 ASP.NET 页面的 PostBack 机制,所以 history.go(-1) 可能还是当前页面,而不能真正回退到上一页面。     在 Classifieds Site Starter Kit 中,学习到一种不错的关于回退的处理方法,可以分别在客户端和服务器控件中实现页面的回退,代码如下: 1)首先在页面中增加两个属性 //记录上一个页面的信息 private string UrlReferrer ...{ get ...{ return ViewState["UrlReferrer"] as string; }

2009-11-05 0comments 95hotness 0likes mikebai Read all
dev

javascript:history.go()和History.back()的区别

<input type=button value=刷新 onclick="window.location.reload()"><input type=button value=前进 onclick="window.history.go(1)"><input type=button value=后退 onclick="window.history.go(-1)"><input type=button value=前进 onclick="window.history.forward()"><input type=button value=后退 onclick="window.history.back()"> 后退+刷新<input type=button value=后退 onclick="window.history.go(-1);window.location.reload()">在C# Web程序中,如为页面按钮写返回上一页代码 this.RegisterClientScriptBlock("E", "<script language=javascript>history.go(-2);</script>"); 其中,history.go(-2),要写为-2,因在按钮事件触发前,已刷新一次页面,所以应是-2。 Response.Write("<script language=javascript>history.go(-2);</script>"); 此处也要写为“-2”。跟直接写脚本的有所不同。history.back()是会上一页i=1history.go(i)去指定的某页如果是history.go(0)那就是刷新这两个属于JS代码,相当于IE的前进、后退功能。具体的用处就要看什么时候需要这个就用上。比如用户注册时的验证是后台验证,不符合要求的时候就可以用这个,可以最大限度保证用户少重复输入数据。例如:载入页面:   function onLoadPage(){     if(event.srcElement.tagName=="SPAN"){         oFrame=top.window.middle.frames[2];         oTxt=event.srcElement.innerText;         switch(oTxt){             case "前 进":                 oFrame.history.go(1);             case "后 退":                 oFrame.history.back();             case "刷 新":                 oFrame.location.reload();         }     }} 打开一个jsp页面,肯定是用客户端脚本进行刷新了。Javascript刷新页面的几种方法:1 history.go(0)2 location.reload()3 location=location4 location.assign(location)5 document.execCommand('Refresh')6 window.navigate(location)7 location.replace(location)8 document.URL=location.href

2009-11-05 0comments 103hotness 0likes mikebai Read all
DotNET

callback笔记

public string GetCallbackEventReference ( Control control, 处理客户端回调的服务器 Control。该控件必须实现 ICallbackEventHandler 接口并提供 RaiseCallbackEvent 方法。 string argument, 从客户端脚本传递给服务器端的一个参数、RaiseCallbackEvent 方法。  string clientCallback, 一个客户端事件处理程序的名称,该处理程序接收成功的服务器端事件的结果。即服务器端GetCallbackResult方法返回给客户端JS所在的方法。用户定义在<script>块中的JavaScript回调(callback)函数名。回调(callback)执行后,此函数最终负责页面的更新。 string context 上下文对象,客户端回调的客户端函数(即该方法的返回值函数)返回给clientCallback的一个参数. string clientErrorCallback,客户端事件处理程序的名称,该处理程序在服务器端事件处理程序出现错误时接收结果。  bool useAsync true 表示同步执行回调;false 表示异步执行回调。 ) 返回值调用客户端回调的客户端函数的名称。 GetCallbackEventReference函数将产生如下的脚本调用:WebForm_DoCallback(pageID, input, UpdateEmployeeViewHandler, null, null); 客户端JS需要2个函数一是出发改回调的激发函数,即GetCallbackEventReference的返回值二是处理服务器端所返回的结果数据,并对当前client页面进行更新的函数.即上述函数参数中的clientCallback <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="SRS.Web.WebForm1" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head runat="server">    <title></title>     <script type="text/javascript">        function DoCallBack(arg, evt, context) {            WebForm_DoCallback("__Page", arg, evt, context, null, false);        }         function btnCallback(arg, context) {            DoCallBack(arg, this.callbackEvent, context);        }         function callbackEvent(arg, context) {            alert(arg + context);        }    </script> </head><body>    <form id="form1" runat="server">    <div>        <input type="button" value="Callback" onclick="btnCallback(1, 'Message')" />    </div>    </form></body></html>     public partial class WebForm1 : System.Web.UI.Page, ICallbackEventHandler    {        protected void Page_Load(object sender, EventArgs e)        {            Page.ClientScript.GetCallbackEventReference(this, "", "", "");        }        protected void Button1_Click(object sender, EventArgs e)        {            Response.Write("");        }        void ICallbackEventHandler.RaiseCallbackEvent(String eventArgument)        {            eventArgument = "i have changed~";        }        string ICallbackEventHandler.GetCallbackResult()        {            return "Data from server...";        }    }   例子2 <%@ Page Language="C#" AutoEventWir

2009-11-04 0comments 94hotness 0likes mikebai Read all
DotNET

msdn之GetCallbackEventReference

http://msdn.microsoft.com/zh-cn/library/ms153103(VS.80).aspx   http://pwqzc.cnblogs.com/archive/2005/11/10/273277.html   http://book.csdn.net/bookfiles/185/1001858503.shtml    

2009-11-02 0comments 94hotness 0likes mikebai Read all
DotNET

GetCallbackEventReference的用法

GetCallbackEventReference函数在 .NET Framework 2.0 版中是新增的。 MSDN解释:获取一个对客户端函数的引用;调用该函数时,将启动一个对服务器端事件的客户端回调。此重载方法的客户端函数包含指定的控件、参数、客户端脚本和上下文。函数原型:public string GetCallbackEventReference ( Control control, string argument, string clientCallback, string context) 第一个参数指定了服务器端将要处理回调的目标对象,即处理客户端回调的服务器端控件。该控件必须实现 ICallbackEventHandler 接口并提供 RaiseCallbackEvent 方法。    如果传入的是this,则表示页面本身。也可以传入任何实现了ICallbackEventHandler的页面控件(page control)的引用。    在任何情况下,客户端的提交动作(submit action)会提交至和标准回传(postback)机制相同的ASPX页面。第二个参数是一个JavaScript常量表达式,表示页面传给服务器的输入数据。如将一个下拉列表当前选中元素的值传入"document.getElementById['cboEmployees'].value":。第三个参数是一个用户定义在<script>块中的JavaScript回调(callback)函数名。回调(callback)执行后,此函数最终负责页面的更新。最后两个可选参数可用来指定错误处理函数(error handler)和上下文对象(context object)。 GetCallbackEventReference函数将产生如下的脚本调用:WebForm_DoCallback(pageID, input, UpdateEmployeeViewHandler, null, null);此函数的代码会自动下载到客户端并通过<script>标签添加到页面响应(page's response)中。WebForm_DoCallback 使用XmlHttpRequest DOM对象(XmlHttpRequest DOM object)回调(call back)当前页面的URL。与此同时,它会添加一些额外的隐藏域(hidden field)以便服务器区分更简单的轻量级回调(callback)请求和一般回传(postback)请求。处理请求时,ASP.NET运行时(runtime)标识出调用的目标对象(传给GetCallbackEventReference的第一个参数),确认它实现了ICallbackEventHandler接口后调用RaiseCallbackEvent方法:void RaiseCallbackEvent ( string eventArgument)eventArgument一般即是通过GetCallbackEventReference指定的页面传递到服务器端的输入数据,即参数2RaiseCallbackEvent处理完毕,即通过调用public string GetCallbackResult()将处理结果返回给调用控件,交由客户端执行GetCallbackEventReference指定的客户端脚本clientCallback,由其完成客户端刷新。 上面说过,脚本回调(script callback)并不适用于所有浏览器,尽管最新的浏览器,包括Internet Explorer 5+, Netscape 6+, and Safari1.2+都能行。Microsoft在ASP.NET 2.0中加入了两个新的browser bapabilities:SupportsXmlHttp 与SupportsCallback以便开发人员检查方案的可行性。一条让页面刷新更快的告诫尽管脚本回调(script callback) 定义在ASP.NET 2.0中,要使其在ASP.NET 1.1里工作也并不很困难。在ASP.NET 2.0中,很多服务器控件(server control)借助脚本回调(script callback)提供了更迅速的页面刷新。最突出的例子也许是GridView控件(GridView control),作为DataGrid的接班人,选择性地运用脚本回调(script callback)实现分页显示记录。正如前面所说,脚本回调(script callback)依赖于文档对象模型(DOM)的XmlHttpRequest对象。在Internet Explorer中,此文档对象模型对象(DOM object)通过ActiveX控件(ActiveX control)实现——Microsoft.XmlHttp。在IE中浏览这样的页面时,你必须适当降低安全设置以允许ActiveX控件(ActiveX control)能被脚本调用。在其他以同样方式实现XmlHttpRequest文档对象模型对象(DOM object)的浏览器中,这是不必要的。事实上,基于Mozilla的浏览内置支持了HTTP请求功能器,而没用使用ActiveX控件(ActiveX control)——这也是在Internet Explorer 7.0中被寄予厚望的功能。 下面简单例子可作参考:服务器端 public partial class _Default : System.Web.UI.Page , ICallbackEventHandler

2009-11-02 0comments 112hotness 0likes mikebai Read all
DotNET

深度解析ASP.NET2.0中的Callback机制

callback的一般使用方法还算简单,直接参照msdn的帮助和范例就足够了。但是想要真正用好、用精,或者想开发一些基于callback机制的WEB组件,那么,就要先深入了解callback的实现机制了。在本文中,Teddy将和您一起解析callback的整个调用、反馈机制,相信对于帮助您更好的使用callback,将能有一定的益处。   Callback vs Atlas    首先,谈谈Atlas。很多朋友可能会觉得奇怪,已经有了Callback,为什么又要出Atlas呢?关于这个问题,Atlas的作者怎么解释,我倒 没有去调查。只不过从我个人对callback和atlas的使用感受来讲,觉得,callback作为一个接口和postback非常类似的实现,肯定 是为了让用户类似使用postback来使用它。但是,它的这个类似postback的机制,应该说使用上还不是特别方便,也不易扩展,当然这是相比于其 他的AJAX框架实现来说的。因此,微软方面借鉴了许多的已有的AJAX实现,如Prototype,Backbase以及AJAX.NET,并结合ASP.NET2.0 的部分特有功能,发明了这样一个博采众长的AJAX框架。基于Atlas来开发AJAX应用有多好,很难量化的来说,但至少不比其他的这些AJAX框架来 的差是肯定的,加上微软这个后台,以及像live.com这样的重量级站点的应用推广,其影响当然是值得期待的。   不过,这也不是说callback实现没一无是处了,作为程序员,我们需要有正确的态度,在正确的使用情形,使用最正确的技术。没有哪一个框架是万能的,是适合任何使用环境的;就像大家都在争论那个软件开发方法最好,CMMi,RUP,XP,AGILE~~,其实,没有最好,最合适的才是最好的。我们最应该做的,是了解各种方案的原理和优缺点,从而,合理的使用正确的工具来解决实际问题。   Begin from Client Script    我们都知道,凡是AJAX,从底层来讲,无外乎两种实现机制:XMLHTTP以及IFRAME。在AJAX这个词获得广泛关注之前,其实,基于这两种底 层实现的功能框架,或者基于这两种技术的无刷新效果实现就已经被广泛的使用了。当然,发展到今天,在使用接口方面,这些底层机制的细节往往被框架给隐藏 了,使用接口变得越来越简单,用户只要调用这些简单接口,没有必要知道具体是怎么实现效果的了。   不过,这里我们既然是要解析callback的实现机制,那还是让我们从一个callback调用的客户端脚本调用开始,看看,微软是怎么实现这个callback机制的。   1、ClientScript.GetCallbackEventReference(...)   要激发一个callback,首先,当然需要在客户端本中发出一个调用。一个典型的调用语法如下: <script language="javascript" type="text/javascript"> function any_script_function(arg, context) {  <%= ClientScript.GetCallbackEventReference(this, "arg", "ReceiveServerData", "context")%>; } </script>   ClientScript.GetCallbackEventReference(...)将根据传入的参数返回实际的回调脚本。这个函数有多个重载版本,因此,这些参数的含义,大家可以参考MSDN。以具体的上面这段示例代码中的参数来说:    - this表示执行回调的的服务端控件是当前这个Page,当前的Page必须实现ICallbackEventHandler接口,包括必须实现 string GetCallbackResult()和void RaiseCallbackEvent(eventArgument)这两个接口函数,这个参数也可以是指向某个WEB控件的引用,当然,这个空间也必须 实现ICallbackEventHandler接口;   - "arg"是将被传给RaiseCallbackEvent的参数eventArgument的值,可以使人以自定义格式的字符串;   - "ReceiveServerData"是当回调成功之后,处理返回内容的客户端脚本函数的名称,这个函数必须存在于执行回调的页面,并且这个函数可以包含两个参数,例如: <script type="text/javascript"> function ReceiveServerData(result, context) {} </script>   这两个参数,分别是回调的返回数据result,和原封不动被返回的我们激发回调时的这个context参数,当然,这两个参数都是字符串类型的。    - "context"就不用多解释了,记得这个参数会被原封不动的传给指定的返回数据处理函数就行了。MSDN的官方文档说,context一般可用来传递 需要在客户端的返回数据处理函数中用来调用的脚本代码,不过实际上,你传什么都可以,把它看成一种从客户端回调的的激发端,到处理返回数据的接收段之间的 参数传递通道就行了。2、WebForm_DoCallback(...)  Ok,明白了以上代码的含义,下面我们来看看,前面的这条“<%= ClientScript.GetCallbackEventReference(this, "arg", "ReceiveServerData", "context")%>;”在运行时会被解析成什么样子呢?我们只要在页面运行时察看页面源码就可以看到,实际上服务器帮我们生成了下面这段 script代码: <script language="javascript" type="text/javascript"> function any_script_function() {  WebForm_DoCallback('__Page',arg,ReceiveServerData,context,null,false); } </script>    这段代码是什么意思呢?很显然的他调用了一个系统与定义的script函数:WebForm_DoCallback。我们要把这个函数找出来看看它具体 为我们干了什么。在运行时的页面源码中,我们很容易可以找到这段脚本的出处。我们注意到有一个script,src= "/TestCallbackWeb/WebResource.axd?d=HEcYmh-7_szSIu1D_mHSEw2&amp;t=632661779991718750", 这里就定义了WebForm_DoCallback。让我们把它用flashget下载下来,将扩展名改为.js。看看源码吧,没有被混淆的,所以很容易 看明白。我这里就只把和callback相关的部分贴出来解释一下,见代码中的注释:

2009-11-02 0comments 114hotness 0likes mikebai Read all
DotNET

ASP.NET实现回调服务器的简单方法

在开发ASP.NET应用程序的过程中, 我们经常需要在不刷新页面的情况下回调服务器的一些信息.人们喜欢用一些集成的的类库来处理,其实,ASP.NET本身已以内置了服务器回调的信息.下面是一个简单的例子:要实现回调,服务器必须实现 ICallbackEventHandler  接口.如下:public partial class _Default : System.Web.UI.Page ,ICallbackEventHandler{    protected void Page_Load(object sender, EventArgs e)    {        Page.ClientScript.GetCallbackEventReference(this, "","", "");    }    protected void Button1_Click(object sender, EventArgs e)    {        Response.Write("");    }     void ICallbackEventHandler.RaiseCallbackEvent(String eventArgument)    {    }     string ICallbackEventHandler.GetCallbackResult()    {        return "Data from server...";    }}方法:Page.ClientScript.GetCallbackEventReference(this, "","", "");是为了能够在页面中导入回调时要使用的JS脚本.这里只使用了最简单的方法.目的只是为了在页面中导入JS脚本,没有执行其它任何操作.在导入的JS脚本里有一个WebForm_DoCallback()方法,我们实现回调主要就是依靠这个方法来实现的.下面是WebForm_DoCallback()方法的原形: function WebForm_DoCallback(eventTarget,eventArgument, eventCallback, context, errorCallback, useAsync); eventTarget:指回调事件所指向的对象,一般使用:"__Page"来代替. eventArgument:指回调事件使用的参数,这个参数一定要是字符串类型的.如果要传递对象的话,可以把对象转换成  字符串或其它可以还原为对象的字符串.这个参数会发送到服务器上,由上面的类中的方法:  RaiseCallbackEvent(String eventArgument)所接收,即在服务器上,我们使用  RaiseCallbackEvent(String eventArgument)的参数就是客户端上传的参数. eventCallback:指当服务器事件执行完成后,会调用eventCallback参数所指向的方法.这个方法由两个参数.一般  是这样:function callbackEvent(arg,context){......}.这里,第一个参数是由服务器上的方法GetCallbackResult()所返回的字符串.也必须是字符串类型的数据.第二个参数是我们回调  服务器时WebForm_DoCallback()方法中的context参数,它没有上传到服务器,而是在客户端传送的,虽然它是字符串类型,但实际上它可以是任何javascript支持的数据类型.  如数组,对象等等. 下面是一段客户端代码:实现简单的回调.<html xmlns="http://www.w3.org/1999/xhtml"><head runat="server">    <title></title>     <script type="text/javascript">        function DoCallBack(arg, evt, context) {            WebForm_DoCallback("__Page", arg, evt, context, null, false);        }         function btnCallback(arg, context) {            DoCallBack(arg, this.callbackEvent, context);        }         function callbackEvent(arg, context) {            alert(arg + context);        }    </script> </head><body>    <form id="form1" runat="server">    <div>        <input type="button" value="Callback" onclick="btnCallback(1, 'Message')" />    </div>    </form></body></html> 在这里我对WebForm_DoCallback进行了一下简单的封装,方面直接调用回调的方法.需要注意的是:我们要实现回调的话,在aspx页面中必须有一个运行在服务器上的form否则的话,服务器是不会在客户端的页面上导出实现回调功能的脚本的.

2009-11-02 0comments 98hotness 0likes mikebai Read all
dev

Access 类型转换函数

每个函数都可以将表达式 (表达式:算术或逻辑运算符、常数、函数和字段名称、控件和属性的任意组合,计算结果为单个值。表达式可执行计算、操作字符或测试数据。)强制转换为特定的数据类型 (数据类型:决定字段可拥有的数据类型的字段特征。数据类型包括 Boolean、Integer、Long、Currency、Single、Double、Date、String 和 Variant(默认)。)。 语法 CBool(expression) CByte(expression) CCur(expression) CDate(expression) CDbl(expression) CDec(expression) CInt(expression) CLng(expression) CSng(expression) CStr(expression) CVar(expression) 必选的 expression 参数 (参数:为操作、事件、方法、属性、函数或过程提供信息的值。)可以为任何字符串表达式 (字符串表达式:任一求值为一列连续字符的表达式。表达式的元素可以是:返回字符串或字符串 Variant (VarType 8) 的函数;字符串字面值、常量、变量或 Variant。)或数值表达式 (数字表达式:计算结果为数字的任何表达式。表达式可以是变量、常数、函数和运算符的任意组合。)。 返回类型 函数名称决定返回类型,如下所示: 函数 返回类型 expression 参数的范围 CBool Boolean  任何有效的字符串或数值表达式。 CByte Byte  0 到 255。 CCur Currency  -922,337,203,685,477.5808 到 922,337,203,685,477.5807。 CDate Date  任何有效的日期表达式。 CDbl Double  对于负值,-1.79769313486231E308 到 -4.94065645841247E-324;对于正值,4.94065645841247E-324 到 1.79769313486232E308。 CDec Decimal  对于整数(即没有小数的数字),+/-79,228,162,514,264,337,593,543,950,335。对于具有 28 位小数的数字,值域范围是 +/-7.9228162514264337593543950335。可能的最小非零数字为 0.0000000000000000000000000001。 CInt Integer  -32,768 到 32,767;小数部分被四舍五入。 CLng Long  -2,147,483,648 到 2,147,483,647;小数部分被四舍五入。 CSng Single  对于负值,-3.402823E38 到 -1.401298E-45;对于正值,1.401298E-45 到 3.402823E38。 CStr String  CStr 的返回值取决于 expression 参数。 CVar Variant  对于数字,与双精度型的值域范围相同。对于非数字值,与 String 的值域范围相同。 注解 如果传递给该函数的 expression 位于要转换为的目标数据类型的值域范围之外,则将发生错误。 通常,可以在代码中使用数据类型转换函数,以表明某个操作的结果应表示为特定数据类型而非默认的数据类型。例如,使用 CCur 在通常会出现单精度、双精度或整型运算的地方强制使用货币运算。 应该使用数据类型转换函数而不是 Val 来提供数据类型之间国际认可的转换。例如,当使用 CCur 时,不同的小数点、不同的千位分隔符以及各种货币选项都会根据计算机的区域设置正确识别。 当小数部分恰好为 0.5 时,CInt 和 CLng 始终都会将其舍入到最接近的偶数。例如,0.5 舍入到 0,而 1.5 舍入到 2。CInt 和 CLng 与 Fix 和 Int 函数不同,后者会将数字的小数部分截断,而不会对其进行舍入。另外,Fix 和 Int 会始终返回与传入类型相同类型的值。 可以使用 IsDate 函数确定 date 是否可以转换为日期或时间。CDate 可识别日期文本和时间文本,以及处于可接受的日期范围内的某些数字。将数字转换为日期时,整数部分将被转换为日期。数字的任何小数部分都将被转换为一天中的时间(从午夜 12 点开始计算)。 CDate 将根据系统的区域设置 (区域设置:对应于给定语言和国家/地区的一组信息。)识别日期格式。如果采用可识别的日期设置之外的其他格式提供日期值,则可能无法确定正确的年、日、月顺序。此外,如果长日期格式中还包含星期字符串,也不能识别此格式。 CVDate 函数也提供了与 Visual Basic 早期版本的兼容性。CVDate 函数的语法与 CDate 函数的语法相同;不过,CVDate 会返回一个 Variant 值(其子类型为 Date)而不是实际的 Date 类型。由于目前存在一个固有的 Date 类型,因此已不再需要 CVDate 了。可以将表达式转换为 Date,然后将其赋值给 Variant,从而达到相同的效果。此技术与所有其他固有类型到其对应的 Variant 子类型的转换一致。  注释    CDec 函数不会返回离散数据类型;相反,它会始终返回一个其值已转换为 Decimal 子类型的 Variant。 示例 注释   以下示例演示了此功能在 Visual Basic for Applications (VBA) 模块中的使用。有关使用 VBA 的详细信息,请在“搜索”旁边的下拉列表中选择“开发人员参考”,然后在搜索框中输入一个或多个词条。 CBool 函数此示例使用 CBool 函数将表达式转换为 Boolean 值。如果表达式的求值结果是一个非零值,CBool 将返回 True;否则,它将返回 False。 Dim A, B, CheckA = 5: B = 5    ' Initialize variables.Check = CBool(A = B)    ' Check contains True. A = 0    ' Define variable.Check = CBool(A)    ' Check contains False.     CByte 函数此示例使用 CByte 函数将表达式转换为 Byte 值。 Dim MyDouble, MyByteMyDouble = 125.5678    ' MyDouble is a Double.MyByte = CByte(MyDouble)    ' MyByte contains 126.     CCur 函数此示例使用 CCur 函数将表达式转换为 Currency 值。 Dim MyDouble, MyCurrMyDouble = 543.214588    ' MyDouble is a Double.MyCurr = CCur(MyDouble * 2)    ' Convert…

2009-10-31 0comments 102hotness 0likes mikebai Read all
1…4647484950…62

Recent Posts

  • c# winform适配高dpi
  • com.microsoft.sqlserver.jdbc.SQLServerException “trustServerCertificate”属性设置为“false”,但驱动程序无法使用安全套接字层 (SSL) 加密与 SQL Server建立安全连接
  • java -cp 用法介绍
  • HTML 容器元素
  • MVC的cshtml的介绍

Recent Comments

No comments to show.

COPYRIGHT © 2025 mikebai.com. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang