第五天 练习UI层 总结技巧
练习UI层:
页面居中布局
- from style=“width:1000px;margin:0 auto;”
- 工具栏 :style=“text-align:center;”
- GridView:width:“100%”
DropDownList绑定 数据
- 前后台结合方式
- 配置SqlDataSource数据源,选择合适的表
- 设置DataTextField和DataValueField属性
- 删除DataSourceD属性和和生成的SqlDataSource控件
- 添加额外项,并设置AppendDataBoundItems=“True” (对应的值与后台一致)
- 绑定 数据源: DataSource=BLL.Manage. Select();
- 执行数据绑定: DataBindO);
- 后台直接完成方式
RadioButtonList设置
- 根据要求,编辑项(对应的值与数据库1后台保持一致,不要忘记默认选中项)
- 调整布局: RepeatDirection="Horizontal"RepeatI ayout= “Flow”
GridView绑定数据
- 配置SqlDataSource数据源,修改select语句,生成框架
- 删除DataSourceD属性和生成的SqlDataSource控件,不刷新字段信息
- 调整主键: DataKeyNames=“ID”
- 删除或隐藏不需要的列: Visible=“false”
- 为显示的列指定列名:HeaderText=“列名”
- 绑定数据源: DataSource=BLL.Manage Select();
- 执行数据绑定: DataBind);
隐藏指定控件
- visible=’<%# Convert. ToString(Eval(“基准列”))==“基准值”%>'控件ID.Visible=fal
跳转新页面并传值
- HyperL inkField: DataNamigateUrlFields 、DataNavigeteUrlFormatString
- HyperLink: NavigateUrl=’<%# “新地址?id=” + Eval(“主键列”)%>’
- LinkButton: PostBackUrl=’<%# “新地址?id=” + Eval(“主键列”)%>’
查询功能实现
- 双击查询按钮,进入click事件
- 获取查询参数,并进行数据类型转化
- 绑定数据源: DataSource=BLL.Manage.Select(参数列表);4)执行数据绑定: DataBind();
删除功能实现
- 添加模板列:操作。
- 编辑模板列, 添加删除按钮
- 设 置删除按钮的属性:
- 命令: CommandName=" delete"
参数: CommandArgument=’<%# Eval(“主键”) %>'●
提示: OnClientClick=“returm confirm(删除? ')”
- 命令: CommandName=" delete"
- 为 GridView添加Row Command事件
- 在 Row_ Command事件中获取数据:
命令: | e.CommandName
参数: e.CommandArgument - 针对命令进行判断,调用相应方法: BLL.Manage.Delete(参数)
- 重新绑定数据(或跳转至当前页面)
当前页面(或不需要显示原数据)更新功能实现
-
添加模板列:操作
-
编辑模板列,添加更新按钮
-
设置更新按钮的属性
- 命令:CommandName=" update"
- 参数:CommandArgument=’<%# Eval(“主键”) %>’
-
为 GridView添加Row Command事件
-
在Row_ Command事件中获取数据:
- 命令: e.CommandName
- 参数: e.CommandArgument
-
针对命令进行判断,调用相应方法:
- 更新数据: BLL.Manage.Update(对象)
- 判断>0,提示、重新绑定数据(或跳转至当前页面)
新页面(或需要显示原数据)更新功能的实现
-
创建新页面、 布局(居中),配置可选择控件的数据项
-
在原页面添加按钮, 跳转至新页面并传递修改对象的主键ID
-
根据ID参数,查询修改对象:对象=BLL.Manage .Select(ID)
-
如果没找到则跳回原页 面或进入添加模式
-
将修改对象保存至Session中: Session[“M”]= 对象
-
将修改对象的原有属性显示到新页面对应控件内(数据类型转换)
-
双击修改按钮,进入click事件
-
从Session 中取回要修改的对象,并进行格式转换:对象=Session[“M”] as类;
-
根据需要,修改相应属性(数据类型转换)
-
更新数据: BLL.Manage.Update(对象)
-
判断>0,提示,跳转
添加功能的实现
- 创建新页面、布局(居中)
- 配置可选择的数据项
- 双击添加按钮,进入click事件
- 创建添加对象,给属性赋值(数据类型转换)
- 调用添加方法: BLL.Manage.Insert(对象)
- 判断>0,提示、跳转
同一页面,既实现修改,又需要添加
- 根据ID参数,查询修改对象:对象=BLL.Manage. Select(ID);
- 如果找到对象则为修改模式,否则为添加模式;修改模式时,需要把获取到的对象存入Session中: Session[“M”]= 对象
- 参照本文档中添加及新页面修改部分,分别实现添加和修改功能
验证控件的常见应用
-
CompareValidator: 比较验证
- 控件比较:密码与确认密码
不等于验证:不等于0,比如下拉框选择 - 单边验证:只指定最大值或最小值,比如出生日期在2000年以后的
- 数据类型验证:比如只能输入整数、小数、日期等
- 控件比较:密码与确认密码
-
CustomValidator: 其它控件完成不了或者需要操作数据库
-
RangeValidator: 最大值和最小值,比如年龄1-20岁
-
RegularExpressionValidator: 规定格式,比如邮箱、手机号、中文
-
RequiredFieldValidator: 必填,其它验证控件的首选
-
不执 行验证: CausesValidation=“False”
登录功能实现及身份验证
-
登录其实是一种特殊的查询,需要在Service中添加查询方法
-
BLL 中与以往一样,直接改为调用即可
-
双击 登录按钮,在Click中调用BLL.Login(),并根据权限进行跳转
-
在新页面获取当前用户,并验证用户权限
-
使用user就可以获取用户信息了,如显示用户名<%=user.UserName%>
退出时不执行验证
- CausesV alidation=“false”
- ValidationGroup
后台提示并跳转
退出功能实现
- Session. Abandon();//终止当前会话
- Response. Redirect(“Login.aspx”;//跳转 至未登录时的默认页面
如何实现光棒效果
-
后台代码实现
-
添加RowDataBound事件
-
筛选所有数据行:
e. Row.RowType == DataControlR owType. DataRow -
对每一数据行添加属性(注意保存原有行的背景色等样式信息)
-
前台jQuery实现