UKnowImJin 2017-07-05 02:55 采纳率: 52.6%
浏览 1036
已采纳

大佬们好,新人有个大问题求各位大佬指点下!

我是一个应届毕业生,学的基本是.NET方向的东西,现在在一家公司上班,公司给我的考核
项目是一个网站,但是他们公司开发的思路跟我的不太一样,给我的源代码也只是懂一部分,很多代码都没见过,有大佬们能帮我讲讲吗
图片说明
图片说明
图片说明大概就是这样,然后下面是我以前做的一个web小项目,在学校学的,感觉很多方式都不同,包括三层的写法,求解!!!图片说明

  • 写回答

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的某种类型的数据行进行操作,这里看不到代码

    涉及的基本思想基本就是这些,其实只是一个有比较实际作用的三层架构的使用,还是比较简单的,分页的功能可以多看看理解下
    分页有很多种实现思路,也是一个比较重要的痛点。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥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跨节点无法访问问题