`
wsql
  • 浏览: 11784197 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

ASP.NET学习笔记---- 数据查询与展示GridView

 
阅读更多

数据查询与展示GridView

GridView连接数据源
编码指定数据源
this.GridView1.DataSource =
返回值为集合的方法;
this.GridView1.DataBind();
以下为使用数据源控件

数据源控件

控件名

说明

SqlDataSource

用来从SQL ServerODBCOracle等数据源中检索数据。通过连接字符串指定。

AccessDataSource

继承自SqlDataSource,专门用于从Access数据库中检索数据

ObjectDataSource

能够将来自业务逻辑层的数据对象与表示层中的数据绑定控件绑定,实现数据的显示、编辑等任务

XmlDataSource

用于检索和处理XML等分层数据。它可以从文件、URL或者也包含XML内容的字符串中加载XML数据

SiteMapDataSource

专门处理类似站点地图的XML数据。默认情况下,数据源好似以.sitemap为扩展名的XML文件

常见数据绑定控件

控件名称

说明

GridView

通过表格方式实现数据的展示,并集成编辑、分页、排序等功能。

DetailsView

显示单条记录的详细信息,并支持对记录的添加、删除、修改等。

DropDownList

下拉菜单控件

数据绑定控件绑定数据源语法
数据绑定控件ID.DataSourceID = 数据源控件ID;

绑定字段

BoundField

用于显示普通文本,是默认的数据绑定列的类型,一般自动生成的列就是该类型


GridView
查询所有信息
步骤1、添加GridView控件(数据)——配置好显示列
2
、在GridView 任务选择数据源下拉框中选择新建数据源——在数据源配置向导的选择数据源类型中选择对象——单击确定
3
、在选择业务对象下拉框中选择需要的业务逻辑层方法——单击下一步——在定义数据方法中选择SELECT——在选择方法下拉框中选择所需要的方法
GridView
中添加新列(添加外键列)
步骤1、在GridView 任务——单击添加新列——在添加字段的选择字段类型下拉框中选择TemplateField——并添加页眉文本——单击确定
2
、在GridView 任务——单击编辑模板——GridView 任务模板编辑模式的显示下拉框中选择刚才添加的新列——ItemTemplate中添加一个Lable控件——Lable任务中——单击编辑DataBindings——Lable DateBindings对话框中为Text绑定数据——首先选中字段绑定——在字段绑定下拉框中选择需要的字段——然后在选择自定义绑定进行代码表达式修改对要显示的外键字段对象进行修改来显示
相应的属性——单击确定——GridView 任务——单击结束模板编辑

DropDownList
控件绑定数据源连接GridView控件根据条件显示
步骤1、添加DropDownList控件(标准)——DropDownList任务——单击选择数据源——在选择数据源下拉框中选择新建数据源——在数据源配置向导的选择数据源类型中选择对象——单击确定
2
、在选择业务对象下拉框中选择需要的业务逻辑层方法——单击下一步——在定义数据方法中选择SELECT——在选择方法下拉框中选择所需要的方法
3
、在 选择要 DropDownList 中显示的数据字段下拉框中选择所需的字段
4
、在 DropDownList 的值选择数据字段下拉框中选择所需的字段(一般选择ID字段)
5
、将DropDownList控件AutoPostBalck改为true
6
、添加GridView控件(数据)——配置好显示列
7
、在GridView 任务选择数据源下拉框中选择新建数据源——在数据源配置向导的选择数据源类型中选择对象——单击确定
8
、在选择业务对象下拉框中选择需要的业务逻辑层方法——单击下一步——在定义数据方法中选择SELECT——在选择方法下拉框中选择所需要的代参方法——单击下一步
9
、在定义参数对话框中的参数源下拉框中选择Control——ControlID下拉框中选择DropDownList控件名——DefaultValue文本框中
可以给定DropDownList控件所选中的默认值(也可以不写)——单击完成

在后置代码中获得选中的值DropDownList.SelectedValue.ToString();

DropDownList 的常用属性和事件

属性或事件

说明

SelectedItem 属性

设置获取下拉菜单的选中项,该属性的类型为System.Web.UI.WebControls.ListItem,所有列表控件(ListControl)中的项都是该类型。他常用的两个属性是TextValueValue用于设置获取项的值;Text用于设置获取显示文本

SelectValue 属性

获取选择项的值,与SelectedItem.Value一致

DataTextField 属性

获取或设置提供列表项文本内容的数据源的字段

DataValueField 属性

获取设置提供列表项值内容的数据源的字段

AutoPostBack 属性

当选中一个列表项时,DropDownList 控件状态是否回发到服务器。默认情况下时false

SelectIndexChanged 事件

当列表控件选定的内容改变并发回服务器时发生。该事件仅当 AutoPostBack 属性设置为true是有效


//
手动绑定DropDownList
this.ddlType.DataSource = RoomTypeManager.GetAllRoomTypes();
this.ddlType.DataTextField = "TypeName";
this.ddlType.DataValueField = "TypeId";
ddlType.DataBind();

//
DropDownList添加第一项
ListItem list = new ListItem();
list.Text = "--
选择--";
list.Value = "0";
ddlType.Items.Insert(0, list);

GridView
删除
步骤:1、先查询所有信息并显示在GridView
2
、在 ObjectDataSource 任务——单击配置数据源——单击下一步——在定义数据方法中选择DELETE(不用设置ID因为ID是由DataKeyNames设置的)——在选择方法下拉框中选择所需要的代参方法——单击完成
3
、在 GridView 属性中——DataKeyNames属性——单击——在数据字段集合编辑器中——在可用数据字段——选择ID——单击确定
4
、在GridView 任务——将启用删除勾上
5
、加删除页眉——GridView 任务——单击编辑列——在选定字段中选定删除——在属性窗口中修改HeaderText属性——单击确定

GridView
实现全选
步骤
1
、在GridView 任务——选择添加新列——在添加字段的选择字段类型下拉框中选择TemplateField——并添加页眉文本——单击确定
2
、在GridView 任务——单击编辑模板——GridView 任务模板编辑模式的显示下拉框中选择刚才添加的新列——HeaderTemplate中添加一个HTML中的CheckBox并添加相应的文字描述——ItemTemplate中添加标准中的CheckBox——GridView 任务——单击结束模板编辑
3
、在aspx源码中编写JavaScript脚本,如下:
<script type="text/javascript" language="javascript">
function GetAllCheckBox(CheckAll)
{
var items = document.getElementsByTagName("input");
for(var i=0;i<items.length;i++)
{
if(items[i].type == "checkbox")
{
items[i].checked = CheckAll.checked;
} } }
</script>
4
、调用方法
<asp:TemplateField HeaderText="
全选">
<HeaderTemplate>
<input id="cbAll" type="checkbox" onclick="GetAllCheckBox(this)"/>
全选
</HeaderTemplate>
<ItemTemplate>
<asp:CheckBox ID="chkSelect" runat="server" />
</ItemTemplate>
</asp:TemplateField>
5
、在后置代码中获得多选项的ID
for (int i = 0; i < this.GridView1.Rows.Count; i++) //this.GridView1.Rows.Count
获得本页GridView控件上所有行数
{
//
获得GridView每一行中的控件名为checkselect的控件,也就是说获得的是GridView每一行中的CheckBox控件
CheckBox cb = (GridView1.Rows[i].FindControl("checkselect")) as CheckBox;
if (cb.Checked == true) //
判断是否选中
{

//获得选中行的第一列值(一般将第一列绑定为ID列),这样就可以根据此处的Id进行删改了
Convert.ToInt32(GridView1.Rows[i].Cells[0].Text.ToString());
} }
实现光棒
执行的事件是GridViewRowDataBound事件
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow){
e.Row.Attributes.Add("onmouseover","currentcolor=this.style.backgroundColor;this.style.backgroundColor='#6699ff'");
e.Row.Attributes.Add("onmouseout", "this.style.backgroundColor=currentcolor");
} }
//
根据修改、删除做处理(后置代码中)
protectedvoidGVRoomTypes_RowCommand(objectsender, GridViewCommandEventArgs e)
{
string cmd = e.CommandName;
int typeId = Convert.ToInt32(e.CommandArgument);
if (cmd == "De") {//
删除
RoomTypeManager.DeleteRoomTypeByTypeId(typeId); }
else if (cmd == "Ed") { //
修改
Page.Server.Transfer("EditRoomType.aspx?typeId=" + typeId);

} }
GridView
详细显示
步骤:1、在GridView 任务——选择添加新列——在添加字段的选择字段类型下拉框中选择TemplateField——并添加页眉文本——单击确定
2
、在GridView 任务——单击编辑模板——GridView 任务模板编辑模式的显示下拉框中选择刚才添加的新列——ItemTemplate中添加标准中的LinkButton——修改其ID属性、Text属性并设置它的CommandArgument属性(与此按钮相关联的命令参数)CommandName属性(与此按钮相关的命令)
源码修改
<asp:TemplateField HeaderText="
详细">
<ItemTemplate>
<asp:LinkButton ID="lkbParticular" runat="server" CommandArgument='<%# Eval("Id") %>' CommandName="xiang">
详细
</ItemTemplate>
</asp:TemplateField>
3
、在后置代码中编写下列事件(行按钮触发事件

protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)

{
if (e.CommandName.Equals("
参数")) //判断事件触发行中那个控件(有CommandName属性设置) {
int id = Convert.ToInt32(e.CommandArgument); //
获得事件触发行的ID
Response.Redirect("#.aspx?id=" + id); //
重定向到其他页面 } }
4
、添加DetailsView控件——DetailsView 任务——在选择数据源中选择新建数据源——在数据源配置向导的选择数据源类型中选择
对象——单击确定
5
、在选择业务对象下拉框中选择需要的业务逻辑层方法——单击下一步——在定义数据方法中选择SELECT——在选择方法下拉框中选择
所需要的代参方法——单击下一步
6
、在定义参数对话框中的参数源下拉框中选择QueryString——QueryStringField文本框中添加所要获得参数(一般获得id——
DefaultValue
文本框中可以给定默认值(也可以不写)——单击完成
7
、美化显示——DetailsView 任务——单击编辑字段——对字段进行编辑——单击确定

DetailsView 控件的常用属性和事件

属性或事件

说明

DefaultMode 属性

设置获取控件默认的状态(模式)。该属性为枚举值,分为 ReadOnly(显示)、Edit(修改)和Insert(添加)

DataKey 属性

数据主键

DataKeyNames 属性

设置获取一个字符串,该字符串包含数据源中间的组合

ItemInserting 事件

单击添加按钮,执行添加方法之前执行

ItemInserted 事件

单击添加按钮,执行添加方法之后执行

ItemUpdating 事件

单击更新按钮,执行更新方法之前执行

ItemUpdated 事件

单击更新按钮,执行更新方法之后执行

数据绑定的写法EvalBind的对比

Eval()

Bind()

Eval是指读的,可实现格式化显示

Bind支持读/写功能,可将跟新后的数据提交回服务器。一般与TextBox等控件使用


GredView设置方法
1
、存储:在GridViewDataKeyNames属性设置ID
获得:在GridViewRowDataBound事件里 int ID = this.GridView1.DataKeys[e.Row.RowIndex].Value;
2
、存储:在模板列的项目模板中添加控件设置控件的CommandArgument='<%# Eval("Id") %>'属性
获得:在GridViewRowCommand事件里int id = Convert.ToInt32(e.CommandArgument);

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics