创建数据库Database
创建数据集DataSet绑定数据库中的表
然后在aspx页面创建数据源ObjectDataSource绑定强类型DataSet
然后在创建LiisView控件绑定数据源ObjectDataSource,配置LiisView的布局与样式
LiisView中的属性:
<ItemTemplate>普通行(奇数行)
<AlternatingItemTemplate>交替行(偶数行)
<EmptyDataTemplate>没有返回数据时显示
<InsertItemTemplate>插入数据的模板
<EditItemTemplate>数据编辑模板
<LayoutTemplate>用来布局,里面必须包含一个Id=itemPlaceholder的服务端控件,这个控件本身没什么用,只是用来区分表头和表尾,控件之上为表头控件之下为表尾
<asp:DataPager ID="DataPager1" runat="server">分页控件
<%# Bind("IsVIP") %>数据的双向绑定
在cs页面要FindControl控件时,不知道是什么类型的,可以在aspx页模板外定义一个同标签的控件如<hr id="qw" runat="server">,然后在cs页面右键qw转到定义就获得类型了!
ListView注意事项:
1、生成的样式要提取到style中,不要内联样式。
2、ItemTemplate里面一般也没有必要用<asp:Lable>来展示只读数据。
3、<LayoutTemplate>表头内容要汉化
4、判断数据行的类型e.Item.ItemType==ListViewDataItem.DataItem
5、取得对应行的DataRowView:
6、在操作行的时候,记得给 <AlternatingItemTemplate>中的行也加上Id,runat="server"
ListViewDataItem lvDataItem = (ListViewDataItem)e.Item;//通过调试发现ListViewDataItem中包含DataItem
DataRowView rowView = (DataRowView)lvDataItem.DataItem;
新增默认行的初始值:ListView的ItemCreated事件,当e.Item.ItemType==InsertItem的时候通过FindControl找到当前行的控件,给他赋初始值。
ID插入Guid值:ListView的ItemInserting事件,插入数据之前执行 e.Values["Id"] = Guid.NewGuid(); //e.Values要插入数据库之前的数据键值对
ObjectDataSource 在绑定Id为GUid类型的表的时候会生成一个【DataObjectTypeName="System.Guid"】导致错误,删掉就行!
插入Guid时注意使用VS时可能会有个BUG 提示【未能找到ObjectDataSource ”ObjectDataSource1“中的”ObjectDataTypeName属性指定类型中找到名为”Id“的属性】
这时需要删除ObjectDataSource 中自动生成的一句代码:DataObjectTypeName="System.Guid"
ListView控件的数据排序
在LayoutTemplate标题行中添加一个控件如:<asp:LinkButton ID="LinkButton1" Text="排序" CommandName="Sort" CommandArgument="Count" runat="server"></asp:LinkButton>
CommandName="Sort" 指定方法名为“Sort”(内部封装不可变)
CommandArgument="Count"根据什么进行排序