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条)

报告相同问题?

悬赏问题

  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!