JavaScript和ASP.NET的传值 因项目需要,最近一段时间里对于js的开发有了一定的了解。在基于ASP.NET的开发中,经常性的需要JS脚本来增加一些客户端的控制,比如限制输入字符,日期控件等等。一般这样的控制基本上在客户端完成就比较好,无需回传到服务端。总结了最近的开发中使用的一些js的技巧,提供给大家 1、js脚本如何访问服务器控件的值 界面上有一个TextBox控件,ID为Name,js里可以采用如下脚本取Name的值 var myvalue=documen
前言 本篇记录的是Asp.net页面生命周期,也就是管道模型的最末端HttpHandler的生命周期。(Page继承了IHttpHandler接口。想了解管道模型,请参考asp.net管道模型(管线模型)之一发不可收拾)。如有不足请大家指出^_^!! 本篇主要参考:ASP.NET编程模型之页面生命周期十一步详解 ASP.NET编程模型之ASP.NET页面生命周期图解 《亮剑.net 深入体验与实战精要》 正文
AttitudeCollection隶属于namespace System.Web.UI命名空间。AttributeCollection类属于集合类,具有其他集合所共有的一些属性。AttributeCollection类用来封装服务器控件的所有属性,可实现对服务器属性集合的添加和删除。控件的属性包括颜色、样式、名称等,这些属性都可以通过AttributeCollection类访问到。
其实原理也很简单,分成两个部分,一个是服务器端,一个是客户端。 首先要设置记录集,这里用DataSet来装载,二级联动,里面就要有两个DataTable;三级联动,里面就要有三个DataTable。同理,n级联动就要有n个DataTable。 然后用第一个DataTable来绑定第一个DropDownList。第一个DropDownList是固定生成的,其他的DropDownList则是根据级数动态new出来的。 服务器端会根据联动级数来动态创建下拉列表框。就是这样:lst = new My
这篇文章经典,看过之后大受启发。值得一看!看来ASP.NET跟JSP其实是一样的,本质上没区别,ASP.NET能做到的JSP一样可以做到,反之亦然。只不过ASP.NET的框架看起来先进一点,不过JSP也在发展,似乎也出现了类似ASP.NET的框架。 一、服务器脚本基础介绍 首先,我们先复习一下Web服务器页面的基本执行方式: 1、 客户端通过在浏览器的地址栏敲入地址来发送请求到服务器端 2、 服务器接收到请求之后,发给相应的服务器端页面(也就是脚本)来执行,脚本产生客户端的响应,发送回客户端 3、 客户
ASP.NET Dropdownlist 错误 “Cannot have multiple items selected in a DropDownList.”
黑马程序员.Net+WindowsPhone课程 .Net中级技术 .Net基础加强高级 面向对象高级 委托/事件原理 反射高级 SQL基础 SQL基础 多表连接查询 存储过程 事务/触发器 ADO.NET ADO.NET核心 离线数据集 SQLHelper 三层架构及应用 三层架构核心 代码生成器技术 Js高级 Js作用域链 Js面向对象 Js闭包 Jquery JQuery对象 选择器 筛选器 JQuery方法和属性 视频下载: .Net中级技术视频 ASP.NET开发 黑马Web服务器
停电区域是指供电公司在某一天的某些区域的台区进行停电,台区的下属表箱均受到影响。这是一个地域性问题,所以通过在地图上进行标识这些区域,将数据可视化地展示到分析人员面前,可以很直观看到当天停电影响区域,极大地方便了后续工作的展开。
虽然您很可能希望尽量多地使用 Web 窗体页框架的那些节省时间和代码的功能,但在某些情况下却不宜使用 ASP.NET 服务器控件和回发事件处理。
好久都没写博客了,出去体验了一下人生,呵呵。 最近加入了一个团队,打算把自然框架重新设计一下,以适应更广阔的需求。 首先是UI。UI一直是弱项,这个不解释了,那么怎么办呢?当然是拿来主义,easyUI、extJs等都很成熟了,拿来用就好。他们都是依据json,所以自然框架打算引入json以便于适应。 另一个就是权限的易于操作方面。以前对于部门方面的权限需求比较模糊,因为做过的项目没有太过涉及部门权限。这一次团队所在的公司,对于权限要求非常的,恩,你知道的,呵呵。所以如果能够完全应对的话,那么
自动视图状态管理是服务器控件的功能,该功能使服务器控件可以在往返过程上重新填充它们的属性值(您不需要编写任何代码)。但是,因为服务器控件的视图状态在隐藏的窗体字段中往返于服务器,所以该功能确实会对性能产生影响。您应该知道在哪些情况下视图状态会有所帮助,在哪些情况下它影响页的性能。例如,如果您将服务器控件绑定到每个往返过程上的数据,则将用从数据绑定操作获得的新值替换保存的视图状态。在这种情况下,禁用视图状态可以节省处理时间。
我们在做增删改查的时候,必可避免的要做表单,那么表单是怎么弄出来的呢?拖拽控件、手写、js创建还是第三方控件(包括js版)? 以前用服务器控件写了一套表单控件,用起来感觉也挺方便的,只是效率太低,太占用服务器的资源。想了好久也没想到如何提高效率,最后改成了纯js版的。 js属于初学,代码还很简陋,大家见笑了。现在是越学习js,越是感到js的强大! 需求、目的: 1、 在前台网页,使用js自动创建表单 2、 可以控制表单里的控件类型,比如文本框、下拉列表框、在线编辑器等。 3、 可以获取用户输入的数据
开篇:上一篇我们了解了所谓的请求处理管道,在众多的事件中微软开放了19个重要的事件给我们,我们可以注入一些自定义的业务逻辑实现应用的个性化设计。本篇,我们来看看WebForm模式下的页面生命周期。
ASP.NET中,有多种保存信息的对象,如:Application,Session,Cookie,ViewState、Cache等,它们有什么区别?应用环境是什么?
QuickPager分页控件的特点 两种运行方式:自动运行、手动运行。前者便捷,后者灵活。 多种分页方式:Postback、Postback伪URL、URL、URL重写、Ajax For服务器控件伪URL。 多种分页算法:Max、颠倒Top(优化版)、Row_Number、自动适应等。可以应对多种数据库和各种需求。 支持多种数据显示控件:GridView、DataList、Repeater等控件。有DataSource和DataBind()的控件都支持。 不需要存储过程,但是仍然可以保证高效率!
ASP.NET 2.0的主题和皮肤特性使你能够把样式和布局信息存放到一组独立的文件中,总称为主题(Theme)。接下来我们可以把这个主题应用到任何站点,用于改变该站点内的页面和控件的外观和感觉。通过改变主题的内容,而不用改变站点的单个页面,就可以轻易地改变站点的样式。主题也可以在开发者之间共享。
开篇:经历了上一篇《aspx与服务器控件探秘》后,我们了解了aspx和服务器控件背后的故事。这篇我们开始走进WebForm状态保持的一大法宝—ViewState,对其刨根究底一下。然后,再对曾经很流行的ASP.Net AJAX方案中的利器—UpdatePanel这个神奇的区域一探究竟。
前言 进入公司6个月后被安排到该项目中,据说该项目规模很大,而拆分到公司的就只是二十来个页面,而我就负责其中的3个页面和其他页面的脚本代码,后来负责项目的性能优化工作。至于业务逻辑方面确实没什么可说的,就是CRUD。由一个很好沟通的前辈和我们6个新人一起来搞。这里有两项内容很值得总结,它们都让我技术上增进不少。 目录 1.页面控件数庞大,页面加载极慢,一步
1. 数据库访问性能优化 数据库的连接和关闭 访问数据库资源需要创建连接、打开连接和关闭连接几个操作。这些过程需要多次与数据库交换信息以通过身份验证,比较耗费服务器资源。ASP.NET中提供了连接池(Connection Pool)改善打开和关闭数据库对性能的影响。系统将用户的数据库连接放在连接池中,需要时取出,关闭时收回连接,等待下一次的连接请求。 连接池的大小是有限的,如果在连接池达到最大限度后仍要求创建连接,必然大大影响性能。因此,在建立数据库连接后只有在真正需要操作时才打开
在asp中的OnClick和在Html里的OnClick是不一样的,前者是ASP中的,所以点击触发的是服务器事件,后者是客服端事件,当然在ASP中也有客户端的,OnClientClick事件,它在编译后就是HTML里的OnClicK事件。
1. 数据库访问性能优化 数据库的连接和关闭 访问数据库资源需要创建连接、打开连接和关闭连接几个操作。这些过程需要多次与数据库交换信息以通过身份验证,比较耗费服务器资源。ASP.NET中提供了连接池(Connection Pool)改善打开和关闭数据库对性能的影响。系统将用户的数据库连接放在连接池中,需要时取出,关闭时收回连接,等待下一次的连接请求。连接池的大小是有限的,如果在连接池达到最大限度后仍要求创建连接,必然大大影响性能。因此,在建立数据库连接后只有在真正需要操作时才打开连接,使用完毕后马上关闭,从而尽量减少数据库连接打开的时间,避免出现超出连接限制的情况。 使用存储过程 存储过程是存储在服务器上的一组预编译的SQL语句,类似于DOS系统中的批处理文件。存储过程具有对数据库立即访问的功能,信息处理极为迅速。使用存储过程可以避免对命令的多次编译,在执行一次后其执行规划就驻留在高速缓存中,以后需要时只需直接调用缓存中的二进制代码即可。另外,存储过程在服务器端运行,独立于ASP.NET程序,便于修改,最重要的是它可以减少数据库操作语句在网络中的传输。 优化查询语句 ASP.NET中ADO连接消耗的资源相当大,SQL语句运行的时间越长,占用系统资源的时间也越长。因此,尽量使用优化过的SQL语句以减少执行时间。比如,不在查询语句中包含子查询语句,充分利用索引等。 2. 字符串操作性能优化 使用值类型的ToString方法 在连接字符串时,经常使用"+"号直接将数字添加到字符串中。这种方法虽然简单,也可以得到正确结果,但是由于涉及到不同的数据类型,数字需要通过装箱操作转化为引用类型才可以添加到字符串中。但是装箱操作对性能影响较大,因为在进行这类处理时,将在托管堆中分配一个新的对象,原有的值复制到新创建的对象中。使用值类型的ToString方法可以避免装箱操作,从而提高应用程序性能。 运用StringBuilder类 String类对象是不可改变的,对于String对象的重新赋值在本质上是重新创建了一个String对象并将新值赋予该对象,其方法ToString对性能的提高并非很显著。在处理字符串时,最好使用StringBuilder类,其.NET 命名空间是System.Text。该类并非创建新的对象,而是通过Append,Remove,Insert等方法直接对字符串进行操作,通过ToString方法返回操作结果。 其定义及操作语句如下所示:
原帖地址:http://www.cnblogs.com/caviare/archive/2007/09/21/901500.html
ASP.NET页面生命周期——理解:重中之重!!! 1.基本概念:所谓的页面生命周期,指的是一个ASP.NET页面类对象从初始化到销毁经过的步凑过程; 2.大致步凑: (1)初始化:PreInit,Init,InitComplete (2)加载数据和页面:LoadState,ProcessPostData,PreLoad,Load,ProcessPostData(第二次)... (3)触发事件:ChangedEvents PostBackEvent (4)保存状态并呈现页面:SaveState,SaveStateComplete,Render 3.步凑详解: ProcessRequestMain-> PreInit-PerfromPreInit()->预初始化:准备初始化页面控件,设置皮肤; Init-InitRecursive(null)->页面对象初始化; InitComplete(OnInitComplete-EventArgs.Empty)->页面对象初始化完成:加载ViewState,还原控件状态,登记用户触发的事件; if(this.IsPostBack) { LoadState-LoadAllState():加载ViewState->ProcessPostData-ProcessPostData(this._requestValueCollection,true):还原控件状态 } ->PreLoad-OnPreLoad(EventArgs.Empty)->Load-LoadRecursive()-> if(this.IsPostBack) { ProcessPostData Second Try-ProcessPostData(this._leftoverPostData,false)->Raise ChangedEvents-RaiseChangedEvents()->Raise PostBackEvent -RaisePostBackEvent(this._requestValueCollection);):触发控件事件 } ->SaveStateComplete-OnSaveStateComplete(EventArgs.Empty):保存页面和控件数据到ViewState-> Render->RenderControl(this.CreateHtmlTextWriter(this.Response.Output)):生成最终HTML代码
根据出错页面给出的提示消息可以知道,默认情况下是启用了事件验证的,在Aspx页HTML部分的Page指令处添加如下属性,就可以在页面回发时禁用事件验证
前一阵子,firelong说,应该用接口实现事件,而不应该用委托。我就希望他能给出一个用接口实现事件的方法,我是一直等呀,等到了现在也没有看到。 昨天又看到了,Snake@Net 说不要把接口和委托给混淆了的文章。也许我就把他们给混淆了吧。他的文章没仔细看,不过我倒是突然想到了一个用接口实现事件的方法,写了一个简单的demo测试了一下,居然还成功了。 所以拿出来抖落抖落。 这个只是体现了一个简单的思路,我并不想用他来证明什么,只是写着玩的。 ========================
如果冯巩的开场白是“观众朋友们,我想死你们了”,那么我的开场白是“最近一直很忙,很久没有发文了”。
需求:从上面的截图中,可以看到这是两个<asp:DropDownList>控件实现的界面,现在的需求是这样的,实现当选择第一个下拉控件并选择了相应的数据后,那么此时在第二个<asp:DropDownList>中进行绑定他的子类在此显示,从而实现页面两级菜单实现数据统一绑定。
在前面示例中使用的的方法简单方便,但没有完全将js与页面结构完全分离,也就是说js依赖了class,下面通过validate()方法的参数设置验证规则将js与页面结构完全分离,代码如下:
//首先要在PageLoad()事件中注册属性 protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { Button1.Attributes.Add(“onclick”, “return checkSame()”);//为Button1添加onclick()事件 ,Button为服务器控件 }//注意:checkSame()这是一个写在aspx面页的js函数,必须有返回值,为:true 或 false }
使用了 UpdatePanel 控件的方案是 ASP.NET AJAX 扩展中的重要方案。我们收到了许多关于此控件、UpdateProgress 控件以及二者功能的客户反馈。我们已经通过大量更改改善了部分页面呈现,并支持构建与 UpdatePanel 控件兼容的控件。我们还针对异步回发生命周期实现了丰富的事件模型,使您能够自定义客户端的更新处理。
url路由(动态路由和静态路由) asp.net 内部维护路由表对象,设置默认的响应路径,动态路由按照路由表的顺序从前向后查找。 url优先按照默认路由按照格式匹配,如果找不到,则返回404错误 参考:https://www.cnblogs.com/meetyy/p/4134615.html ASP.NET 支持三种开发模式: Web Pages 单页面模型,cshtml文件内嵌razor语法 MVC 模型视图控制器,ajax响应函数,服务端和前端完全分离 Web For
数据感应也即数据捆绑,是一种动态的,Web控件与数据源之间的交互,模板循环输出 ,是指使用 UI 前端设计的 HTML 模板片断,并结合数据记录进行循环输出的过程,比如,有如下如图输出 :
特点: 1、 使用js方法,把需要的数据一次性写入到页面里,然后用js来实现联动的效果。 2、 支持n级。 3、 封装成了服务器控件,所以使用非常简单。 4、 支持在回发的时候保持状态。 5、 支持修改记录的时候设置默认选项。 6、 页面设置比较灵活。 7、 采用DataSet作为数据的容器。 缺点: 1、 由于是把需要的数据一次性写入页面交给客户端,所以在网速比较慢的时候,显示页面需要比较长的时间。 可以改进的地方: 1、 引入json,可以把需要的数据放到单独的js文件里面,这样可以减少带宽的压力。 2
1、 1.4.3以上版本将不再承诺支持ie6/ie7。 2、如果是aspx 需要加上 ValidateRequest="false" 3、Web.config <system.web> <httpRuntime requestValidationMode="2.0" maxRequestLength="102400" /> </system.web> 这里使用百度编辑器1.4.3。包可移植官网下载。 http://pan.baidu.com/s/1ntG3Tsl 1、百度编辑器不依赖于
一些常用的属性: DataMember 当数据源包含多个不同的数据项列表时,获取或设置数据绑定控件绑定到的数据列表的名称。(从 DataBoundControl 继承。) DataSource 获取或设置对象,数据绑定控件从该对象中检索其数据项列表。(从 BaseDataBoundControl 继承。) DataSourceID 获取或设置控件的 ID,数据绑定控件从该控件中检索其数据项列表。(从 DataBoundControl 继承。) DataTextField 获取或设置为列表项提供文本内容的数据源字段。(从 ListControl 继承。) DataTextFormatString 获取或设置格式化字符串,该字符串用来控制如何显示绑定到列表控件的数据。(从 ListControl 继承。) DataValueField 获取或设置为各列表项提供值的数据源字段。(从 ListControl 继承。) Items 获取列表控件项的集合。(从 ListControl 继承。) SelectedIndex 已重写。获取或设置 DropDownList 控件中的选定项的索引。 SelectedItem 获取列表控件中索引最小的选定项。(从 ListControl 继承。如果列表控件只允许一个选项,则使用此属性可获取选定项的各个属性。如果列表控件允许多个选项,则使用此属性可获取列表控件中索引最小的选定项的属性。 ) SelectedValue 获取列表控件中选定项的值,或选择列表控件中包含指定值的项。(从 ListControl 继承。) Text 获取或设置 ListControl 控件的 SelectedValue 属性。(从 ListControl 继承。) 公共方法: DataBind 已重载。 将数据源绑定到被调用的服务器控件及其所有子控件。 (从 BaseDataBoundControl 继承。) FindControl 已重载。 在当前的命名容器中搜索指定的服务器控件。 (从 Control 继承。) GetType 获取当前实例的 Type。 (从 Object 继承。) 公共事件 SelectedIndexChanged 当列表控件的选定项在信息发往服务器之间变化时发生。(从 ListControl 继承。) TextChanged 当 Text 和 SelectedValue 属性更改时发生。(从 ListControl 继承。)
前一段时间对比过HTML和XML,最近在两个项目中又分别用aspx和html设计页面,那么aspx和html有什么区别呢?
首先不得不说[URL=http://www.cnblogs.com/wzmaodong/]猫冬[/URL]这个插件做的非常棒!真有点相见恨晚的感觉,记得以前都是自己写原生的Javascript代码,只能做到弹出报错信息的功能,在Web用户体验方面,这个formValidator做的真的很棒。
一个经常让开发人员疑惑的问题是母版页是如何处理相对路径的。如果你使用的是静态文字,这一问题不会困扰你。不过,如果你加入了标签或者指向其他资源的HTML标签,问题就可能发生。
回发或回调参数无效。在配置中使用 <pages enableEventValidation=”true”/> 或在页面中使用 <%@ Page EnableEventValidation=”true” %> 启用了事件验证。出于安全目的,此功能验证回发或回 调事件的参数是否来源于最初呈现这些事件的服务器控件。如果数据有效并且是预期的,则使用 ClientScriptManager.RegisterForEventValidation 方法来注册回发或回调数据以进行验证。 说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
回发或回调参数无效。在配置中使用 <pages enableEventValidation=”true”/> 或在页面中使用 <%@ Page EnableEventValidation=”true” %> 启用了事件验证。出于安全目的,此功能验证回发或回调事件的参数是否来源于最初呈现这些事件的服务器控件。如果数据有效并且是预期的,则使用 ClientScriptManager.RegisterForEventValidation 方法来注册回发或回调数据以进行验证。
看完之后,觉得能不用viewstate就不用,再者像这样viewstate[“a”]=”b”;这种简单的赋值是没有什么关系的,它生成的树是很小的,altas一定是用js修改了viewstate的,但方法肯定是加密再加密的,效率也应该很低.
最近在整理我写的几个服务器控件,发出来与大家共享吧。 我写的自定义服务器控件呢分为两个类, 一是“简单继承”控件,就是继承框架里的控件然后加点属性了、事件了什么的。 二是“功能”控件,简单的说那是符合控件,但是呢是以实现一种功能为目的地。这种控件要实现某一种功能,比如分页的功能,添加、修改数据的功能,查询的功能。 原先呢还不会使用接口了什么的,所以呢代码写得有点不太“好看”,现在使用接口、继承了什么的来整理一下。 先发一个“文本框”的吧,就是继承系统的 TextBox,然后加上几个属性、方法。
DropDownList控件的使用(方法,属性)(.net学习笔记一) (2006-10-11 17:57:03)
上次比较匆忙,Ajax的分页方式仅实现了基本功能,或者说只是验证了我的想法。现在对Ajax分页有做了一些调整,现在可以正式用了。 使用方法还是非常简单,可以完全按照URL分页方式来做,只需要把PagerTurnKind 属性 设置为:PagerTurnKind.AjaxForWebControl;就可以了。 然后前台需要引用jquery-1.4.2.min.js和QuickPager-1.0.js。QuickPager-1.0.js是QuickPager需要用的一个js脚本,Demo里面有这个j
一、此文是Code Project社区2010年4月ASP.NET板块的最佳文章,说明了此文的份量;
在上一章中,对基本的AJAX进行了一些介绍,但是Web GIS开发框架Web ADF提供的AJAX对上述基本的AJAX又进行了一层封装。ArcGIS Server9.3的Web ADF为开发人员提供了可以在AJAX环境中管理客户端与服务器之间传输的框架。这个框架称之为“callback results framework“,包括服务器端的一些类(CallbackResultCollection,CallbackResult)及控件(Web ADF controls)和客户端的JavaScript库(Web ADF JavaScript),如下图所示。
作者:一点一滴的Beer 个人主页:http://www.cnblogs.com/beer
2) 通过页面隐藏模型重写Discuz.Web-install-index.aspx页面
回发或回调参数无效。在配置中使用 或在页面中使用 <%@ Page EnableEventValidation=”true” %> 启用了事件验证。出于安全目的,此功能验证回发或回调事件的参数是否来源于最初呈现这些事件的服务器控件。如果数据有效并且是预期的,则使用 ClientScriptManager.RegisterForEventValidation 方法来注册回发或回调数据以进行验证。
MSDN如下说:允许 ASP.NET 服务器控件在 Page 中发出客户端脚本块。
领取专属 10元无门槛券
手把手带您无忧上云