1.ASPNET页面的组成
1)HTML标签,用来作为页面布局如div,table等 服务器不会编译,直接输出。
不能写服务端事件,有服务器属性不能写,只能写html的属性与客户端的js事件。
2)服务器控件,<asp:控件名 runat="server"> 服务器编译成对应的html.可以通过
设置属性,可以写服务器事件来完成功能。html的属性和js事件是没有提示的。
如果要写html的属性需要使用 控件名.Attribuets.Add("属性名","值")
或者强制写
按钮的onclick不能强制写。使用OnClientClick代表是客户端的单击事件
2.网上书店业务介绍
管理员进行数据管理 数据的增删改查,功能需要强大,界面不需要很好
一般流程:管理员登陆=>进入管理主窗口=》在主窗口通过A标签导航要执行的窗口
->一个列表窗口显示数据一个增加,一个修改
前台界面,需要美观
下拉框绑定控件:
DropDownList1.DataSource = gradeList;
DropDownList1.DataValueField = "NJId";//值对应的属性名
DropDownList1.DataTextField = "NJName";//显示文件对应属性
DropDownList1.DataBind();
//加请选择项的方法
二种方法 改变集合数据 用控件的属性
DropDownList ,BulleList ,checkBoxList, radioBoxList ()
Image,图片 LinkButten链接按钮,imagebutton
3.后台模型:使用Gridview显示数据
GridView显示数据过程
//Gridview绑定数据
GridView1.DataSource = stuList;
//调用绑定
GridView1.DataBind();
///////////////////////////
功能2:设置表格的样式
功能3:集成分页功能的实现(用的第二方法)
实现原理:1数据库分页 2 查询出所有的数据,只显示一部分。
不能用于大数据。
3.1 AllowPaging 为true 3.2 pageSize:显示的条数 3.3 pageindexchange事件
功能4:了解gridview的列类型
4.1 绑定列 DataFiled
4.2 模板列 自已用来定义头部及项部分的显示内容列。
主要用头模板和项模板,模板里可以
用html标签也可以用服务器控件
模板列中如何提取数据源中的数据,使用<%#Eval("属性")%>
4.数据访问层使用DBHelper类
1)HTML标签,用来作为页面布局如div,table等 服务器不会编译,直接输出。
不能写服务端事件,有服务器属性不能写,只能写html的属性与客户端的js事件。
2)服务器控件,<asp:控件名 runat="server"> 服务器编译成对应的html.可以通过
设置属性,可以写服务器事件来完成功能。html的属性和js事件是没有提示的。
如果要写html的属性需要使用 控件名.Attribuets.Add("属性名","值")
或者强制写
按钮的onclick不能强制写。使用OnClientClick代表是客户端的单击事件
2.网上书店业务介绍
管理员进行数据管理 数据的增删改查,功能需要强大,界面不需要很好
一般流程:管理员登陆=>进入管理主窗口=》在主窗口通过A标签导航要执行的窗口
->一个列表窗口显示数据一个增加,一个修改
前台界面,需要美观
下拉框绑定控件:
DropDownList1.DataSource = gradeList;
DropDownList1.DataValueField = "NJId";//值对应的属性名
DropDownList1.DataTextField = "NJName";//显示文件对应属性
DropDownList1.DataBind();
//加请选择项的方法
二种方法 改变集合数据 用控件的属性
DropDownList ,BulleList ,checkBoxList, radioBoxList ()
Image,图片 LinkButten链接按钮,imagebutton
3.后台模型:使用Gridview显示数据
GridView显示数据过程
//Gridview绑定数据
GridView1.DataSource = stuList;
//调用绑定
GridView1.DataBind();
///////////////////////////
功能2:设置表格的样式
功能3:集成分页功能的实现(用的第二方法)
实现原理:1数据库分页 2 查询出所有的数据,只显示一部分。
不能用于大数据。
3.1 AllowPaging 为true 3.2 pageSize:显示的条数 3.3 pageindexchange事件
功能4:了解gridview的列类型
4.1 绑定列 DataFiled
4.2 模板列 自已用来定义头部及项部分的显示内容列。
主要用头模板和项模板,模板里可以
用html标签也可以用服务器控件
模板列中如何提取数据源中的数据,使用<%#Eval("属性")%>
4.数据访问层使用DBHelper类
控件+事件 第三次课
1. gridview提升
1)复选框全选 js实现 用jquery框架实现 把jquery文件复制到项目中
//加载
$(document).ready(function () {
// alert("jquery");
$("#checkall").click(function () {
// alert("点击了chekcAll");
var f = $("#checkall").prop("checked");
$("[name=chk]").prop("checked", f);
1. gridview提升
1)复选框全选 js实现 用jquery框架实现 把jquery文件复制到项目中
//加载
$(document).ready(function () {
// alert("jquery");
$("#checkall").click(function () {
// alert("点击了chekcAll");
var f = $("#checkall").prop("checked");
$("[name=chk]").prop("checked", f);
});
});
2) 批量删除,批量修改实现 获取选中复选框的数据 Request.Form["复选框name属性值"]
--批量删除语法
delete from Student where XSID in (1,2,3)
--批量修改
update Student set XSGrade=3 where XSID in (1,23)
public int DeleteAll(string ids) //数据访问层写法
{
int n = 0;
String sql = @"delete from Student
where XSID in ("+ids+")";
n = SqlHelper.ExecuteNonQuery(SqlHelper.ConnectionString,
CommandType.Text, sql);
return n;
}
3)集成删除[指不跳转到一个页面去删除的实现]
3.1 给GridView设置属性DatakeyNames 为 对象的主键列
3.2 给gridview加一列,commandFiled里面的删除
3.3 删除列会自动激发事件RowDeleting事件
//获取id
string str = GridView1.DataKeys[e.RowIndex].Value.ToString();
//...
});
2) 批量删除,批量修改实现 获取选中复选框的数据 Request.Form["复选框name属性值"]
--批量删除语法
delete from Student where XSID in (1,2,3)
--批量修改
update Student set XSGrade=3 where XSID in (1,23)
public int DeleteAll(string ids) //数据访问层写法
{
int n = 0;
String sql = @"delete from Student
where XSID in ("+ids+")";
n = SqlHelper.ExecuteNonQuery(SqlHelper.ConnectionString,
CommandType.Text, sql);
return n;
}
3)集成删除[指不跳转到一个页面去删除的实现]
3.1 给GridView设置属性DatakeyNames 为 对象的主键列
3.2 给gridview加一列,commandFiled里面的删除
3.3 删除列会自动激发事件RowDeleting事件
//获取id
string str = GridView1.DataKeys[e.RowIndex].Value.ToString();
//...
4)光标效果[gridview绑定事件的妙用]
方法一:可以jquery给行加事件。
原理:<tr> 有js的两个事件,一个鼠标移入有设置背影色,移开背景背景设无
事件激发时机?
//行绑定事件,服务器生成表格的每一行时触发一次,可以灵活根据数据,设置效果。
方法一:可以jquery给行加事件。
原理:<tr> 有js的两个事件,一个鼠标移入有设置背影色,移开背景背景设无
事件激发时机?
//行绑定事件,服务器生成表格的每一行时触发一次,可以灵活根据数据,设置效果。
//e.Row获取行对象,并可以通过e.Row.FindControl("控件名")可以找出该行中的控件
//格式 e.Row.FindControl("服务器id") as 服务器控件类型
//i)获取绑定到该行上的数据?
Student stu = e.Row.DataItem as Student;
//格式 e.Row.FindControl("服务器id") as 服务器控件类型
//i)获取绑定到该行上的数据?
Student stu = e.Row.DataItem as Student;
//ii)获取在行上位置上的控件?
Label bl= e.Row.FindControl("Label1") as Label;
5)操作列的使用
//用来用表格加操作按钮的列,可以在模板列中加操作按钮来实现
//激发事件:RowComman事件,事件里使用三个属性
// e.CommandArgument //事件的参数,数据
// e.CommandName //事件名称:用来区别不同作用的按钮
// e.CommandSource //激发出这个事件的按钮对象
在视图上给按钮设属性值
<asp:Button ID="Button2" runat="server" Text="启用" CommandName="a1"
CommandArgument='<%#Eval("XSID")%>'/>
<asp:Button ID="Button3" runat="server" Text="Button" CommandName="Delete" />
控件名为delete等特殊按钮成为特殊按钮。如激发删除事件的 删除按钮。
Label bl= e.Row.FindControl("Label1") as Label;
5)操作列的使用
//用来用表格加操作按钮的列,可以在模板列中加操作按钮来实现
//激发事件:RowComman事件,事件里使用三个属性
// e.CommandArgument //事件的参数,数据
// e.CommandName //事件名称:用来区别不同作用的按钮
// e.CommandSource //激发出这个事件的按钮对象
在视图上给按钮设属性值
<asp:Button ID="Button2" runat="server" Text="启用" CommandName="a1"
CommandArgument='<%#Eval("XSID")%>'/>
<asp:Button ID="Button3" runat="server" Text="Button" CommandName="Delete" />
控件名为delete等特殊按钮成为特殊按钮。如激发删除事件的 删除按钮。
6)提取数据源的数据,并进行函数处理格式<%#函数名(Eval(属性名))%>
函数名格式:
//根据需要定义绑定样式的方法
public string ShowSex(object obj)
{
string str = "";
int a = Convert.ToInt32(obj);
if (a == 1)
{
str = "<b>男</b>";
}
else {
str = "<i>女</i>";
}
return str;
}
函数名格式:
//根据需要定义绑定样式的方法
public string ShowSex(object obj)
{
string str = "";
int a = Convert.ToInt32(obj);
if (a == 1)
{
str = "<b>男</b>";
}
else {
str = "<i>女</i>";
}
return str;
}
控件+事件 第五次课 灵活的前台显示多条数据控件Reapter控件 Reapter嵌套
为什么需要使用reapter?看素材
做什么功能:只作显示。只要有规律的显示多条数据。
控件特点:不生成任何的html标签,也可以不用放在form中(可以没有form)
为什么需要使用reapter?看素材
做什么功能:只作显示。只要有规律的显示多条数据。
控件特点:不生成任何的html标签,也可以不用放在form中(可以没有form)
知识点一: Reapter控件
1.不生成任何html标签,按照项模板,每条数据源中的数据生成一个项内容。
1)先看显示的效果,哪一部是生成的规则部分。把该部分用Reapter代替。
2)找出每条数据显示的部分,把该部分作为放到项模板和交替模板)
3)给控件绑定数据源 控件名.datasouse=集合;控件名.databind();
4)在项模板中需要从对象取的的部分,使用<%#Eval("属性名")%>
或<%#函数名(Eval("属性名"))%>
1.不生成任何html标签,按照项模板,每条数据源中的数据生成一个项内容。
1)先看显示的效果,哪一部是生成的规则部分。把该部分用Reapter代替。
2)找出每条数据显示的部分,把该部分作为放到项模板和交替模板)
3)给控件绑定数据源 控件名.datasouse=集合;控件名.databind();
4)在项模板中需要从对象取的的部分,使用<%#Eval("属性名")%>
或<%#函数名(Eval("属性名"))%>
知识点二: Reapter嵌套 :Reapter的项模板里面又有绑定控件(reapter,gridview等)
作用:层级显示数据,如显示班级,在班级中又显示每个班的学生。
用于场景:查询里面再根据外查询条件再查询数据。
1)在外reapter里的项模板加一个reapter或gridview
2)里面的reapter写事件实现.ItemDataBound
Repeater rpt = e.Item.FindControl("rpt1") as Repeater;
//2.获取 项对应的数据源中的 对象
Grade g1 = e.Item.DataItem as Grade;
//
第六次课 Reapter实现分页,采用 数据库分页的实现
1)使用URL传递当前页码,在绑定方法中获取页码,并查询,指定页面数据。
作用:层级显示数据,如显示班级,在班级中又显示每个班的学生。
用于场景:查询里面再根据外查询条件再查询数据。
1)在外reapter里的项模板加一个reapter或gridview
2)里面的reapter写事件实现.ItemDataBound
Repeater rpt = e.Item.FindControl("rpt1") as Repeater;
//2.获取 项对应的数据源中的 对象
Grade g1 = e.Item.DataItem as Grade;
//
第六次课 Reapter实现分页,采用 数据库分页的实现
1)使用URL传递当前页码,在绑定方法中获取页码,并查询,指定页面数据。