4条回答 默认 最新
- bakalr 2017-07-05 04:48关注
因为看不到调用的层级方法,所以具体是怎么方法是怎么调实现的看不到,不过也是很基本的三层框架
第一张图打开的是UI层的一个页面首先PageLoad是一个初始页方法,用于在打开页面时实现一些里面的代码功能
ispostback用于判断用户是第一次打开还是点击了提交按钮,这2种操作都会进行post提交,所以这里用
this.ispostback==false
来确保{}里的代码是第一次打开页面需要执行的代码,关于ispostback的说明网上非常详尽
其实可以写成if(!ispostback){}简略些
{}里面的viewstate相当于在本页面存储一个变量,viewstate是ASP.NET服务器控件的一个隐藏属性,可以保存
指定id的变量值,作用范围在当前页面,viewstate本身没有类型,他可以保存string,int,bool,array和一些其他类
型的值,有点类似于form程序的全局变量(但并不是,可以这么理解)
题外话:ASP.NET里面用的比较多的状态记录一个是session一个是viewstate,其他的还有cookie等,session工作在服务器端,所以大量
的session会耗用服务器资源,viewstate是存入页面控件不挤占服务器资源,但是会挤占带宽,另外,session生命周期
可以扩大至整个会话,而viewstate
注意,viewstate使用要谨慎,他的值会以base64编码的形式出现在前端源码中,并不是很安全,所以在使用时要
小心一点
另外,MVC架构下是没有viewstate的,这点请注意,MVC有其他解决办法,例如js。
gv.attributes.add以及gvdatabind很简单了,一个是后台增加控件属性和值,一个是调用方法绑定数据。
requset是一个httprequset类的实例。用于读取web请求旗舰的http值,querystring是用的最多的属性,用于获取id值gvdatebind(){}
这里面基本都是实现数据绑定和分页的一些内容,比较简单,
大致上就是调用业务逻辑层获取数据库的指定数据结果集,转为dataset(datatable)
然后使用DataSource=dt.defaultview;Databind();绑定到GridView上去
一步一步跟踪看看就明白了
注意分页也是依赖于viewstate实现的,viewstate可以实现值的更新
dataset是一个表集合,它可以包含多个datatable,通过例如ds.tables[索引/"datatable名"]的方式访问。第二张图
清空表单那个就不说了,很简单
page.registerstartupscript用于向page发送客户端脚本块,它有两个参数,一个string key和一个string script,前者
用于标示脚本唯一键,后者为内容,具体的内容自行百度即可,也很简单
rowdeleting事件是GridView控件中的时间,在准备删除时会判断是否获取了datakeys,datakeys是你设置的这个
gridview的主键,也是用于操作的唯一键值,接下来就是根据这个键值来进行相应的操作了
比如更新删除等(业务逻辑层的事,ui层只是调用了方法)rowdatabound事件中可以指定对GridView的某种类型的数据行进行操作,这里看不到代码
涉及的基本思想基本就是这些,其实只是一个有比较实际作用的三层架构的使用,还是比较简单的,分页的功能可以多看看理解下
分页有很多种实现思路,也是一个比较重要的痛点。本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 鼠标右键,撤销删除 复制 移动,要怎样删除
- ¥15 使用MATLAB进行余弦相似度计算加速
- ¥15 服务器安装php5.6版本
- ¥15 我想用51单片机和数码管做一个从0开始的计数表 我写了一串代码 但是放到单片机里面数码管只闪烁一下然后熄灭
- ¥20 系统工程中,状态空间模型中状态方程的应用。请猛男来完整讲一下下面所有问题
- ¥15 我想在WPF的Model Code中获取ViewModel Code中的一个参数
- ¥15 arcgis处理土地利用道路 建筑 林地分类
- ¥20 使用visual studio 工具用C++语音,调用openslsx库读取excel文件的sheet问题
- ¥100 寻会做云闪付tn转h5支付链接的技术
- ¥15 DockerSwarm跨节点无法访问问题