创建数据库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"根据什么进行排序