首页前端开发HTMLASP.NET 数据绑定详解 代码+步骤(上)

ASP.NET 数据绑定详解 代码+步骤(上)

时间2023-07-09 13:59:02发布访客分类HTML浏览1508
导读:文章目录1. 数据绑定概述2. 简单数据绑定2.1. 属性绑定2.2. 表达式绑定2.3. 集合绑定2.4. 方法绑定3. 数据控件绑定3.1. ListControl 控件3.2. GridView 控件3.2.2. 使用GridView...

文章目录


1. 数据绑定概述

2. 简单数据绑定

2.1. 属性绑定

2.2. 表达式绑定

2.3. 集合绑定

2.4. 方法绑定

3. 数据控件绑定

3.1. ListControl 控件

3.2. GridView 控件

3.2.2. 使用GridView控件绑定数据源

3.2.3. 自定义GridView控件的列字段名

3.2.4. 使用GridView控件分页显示数据

3.2.5. 选中、编辑和删除GridView数据项

3.3. DataList 控件

3.3.1. DataList 模板

3.3.2. 分页显示DataList控件中的数据

3.4. ListView控件

3.4.1. ListView控件概述

3.4.2. ListView控件的模板

3.4.3. 使用ListView控件对数据进行显示、分页和排序


正文


1. 数据绑定概述


数据绑定指的是从数据源获取数据,或者向数据源写入数据。主要有两种形式:简单数据绑定数据控件绑定

其中简单数据绑定分为属性绑定、表达式绑定、集合绑定和方法绑定;数据控件绑定分为ListControl 控件、GridView 控件、DataList 控件和ListView控件


2. 简单数据绑定


2.1. 属性绑定


基于属性的数据绑定所涉及的属性必须要包含Get访问器,它的基本语法为:

%# 属性名称 %>
    

如果在ASP页面中对属性进行了绑定,那么需要调用Page类的DataBind方法才能执行绑定操作,例如下例:

// .aspx文件
body>
    
    form id="form1" runat="server">
    
        div>
    
            !-- 数据绑定 -->
    
            asp:Label ID="Label1" runat="server" Text="图书名称:">
    %# BookName %>
    /asp:Label>
    
        /div>
    
        div>
    
            !-- 数据绑定 -->
    
            asp:Label ID="Label2" runat="server" Text="图书价格:">
    %# BookPrice %>
    /asp:Label>
    
        /div>
    
    /form>
    
/body>


// .aspx.cs文件
// BookName属性
public string BookName {

    get {
    
        return "ASP.NET程序设计";

    }

}


// BookPrice属性
public string BookPrice {

    get {
    
        return "49";

    }

}


protected void Page_Load(object sender, EventArgs e){
    
    // 调用DataBind()方法执行绑定
    Page.DataBind();

}
    


执行结果如下:


2.2. 表达式绑定


表达式绑定的语法与属性绑定一致,它可以在属性绑定的基础上通过表达式对数据进行处理,它的语法如下:

%# 表达式 %>
    

例如在属性绑定的基础上,要查询10本书的总价格,则代码如下:

// .aspx文件
body>
    
    form id="form1" runat="server">
    
        div>
    
            !-- 数据绑定 -->
    
            asp:Label ID="Label1" runat="server" Text="图书名称:">
    %# BookName %>
    /asp:Label>
    
        /div>
    
        div>
    
            !-- 表达式绑定 -->
    
            asp:Label ID="Label2" runat="server" Text="图书价格:">
    %# Convert.ToInt32(BookPrice)*10 %>
    /asp:Label>
    
        /div>
    
    /form>
    
/body>


// .aspx.cs文件
// BookName属性
public string BookName {

    get {
    
        return "ASP.NET程序设计";

    }

}


// BookPrice属性
public string BookPrice {

    get {
    
        return "49";

    }

}


protected void Page_Load(object sender, EventArgs e){
    
    // 调用DataBind()方法执行绑定
    Page.DataBind();

}
    


执行结果如下所示


2.3. 集合绑定


有一些服务器控件是多记录控件,如DropDownList控件, 这类控件即可使用集合作为数据源对其进行绑定。通常情况下,集合数据源主要包括ArrayList、Hashtabel、 DataView、 DataReader 等。


例如下面代码,实现了对DropDownList控件进行数据绑定:

// .aspx文件
body>
    
    form id="form1" runat="server">
    
        div>
    
            asp:Label ID="Label1" runat="server" Text="图书名称:">
    /asp:Label>
    
            asp:DropDownList ID="DropDownList1" runat="server">
    /asp:DropDownList>
    
        /div>
    
    /form>
    
/body>


protected void Page_Load(object sender, EventArgs e){
    
    // 构建数据源
    ArrayList arrayList = new ArrayList();
    
    arrayList.Add("iisexpress");
    
    arrayList.Add("assembly");
    
    arrayList.Add("Windows");
    

    // 指定数据源
    DropDownList1.DataSource = arrayList;
    
    // 数据绑定
    DropDownList1.DataBind();

}
    

执行结果如下:



2.4. 方法绑定


方法的绑定与属性绑定的语法是一致的,只不过把绑定对象更替为了方法,例如下面的代码:

// .aspx文件
body>
    
    form id="form1" runat="server">
    
        div>
    
            !-- 数据绑定 -->
    
            asp:Label ID="Label1" runat="server" Text="图书名称:">
    %# BookName %>
    /asp:Label>
    
        /div>
    
        div>
    
            !-- 方法绑定 -->
    
            asp:Label ID="Label2" runat="server" Text="图书价格:">
    %# PriceTest("49") %>
    /asp:Label>
    
        /div>
    
    /form>
    
/body>


// .aspx.cs文件
public string PriceTest(string _price) {
    
    return _price;

}


protected void Page_Load(object sender, EventArgs e){
    
    // 调用DataBind()方法执行绑定
    Page.DataBind();

}
    


执行结果如下:


3. 数据控件绑定


3.1. ListControl 控件


ListControl控件用来定义所有列表类型控件的所有属性方法和事件,是一个抽象基类,它能够控制的控件主要包括:DropDownList控件、ListBox控件、CheckBoxList控件、RadioButtonList控件。


ListControl控件能够指定能够用来填充列表控件的数据源,其中与数据绑定修改的属性有:


DataSource属性,用来设置数据源

DataTextField属性,用来指定提供文本内容的数据源字段

DataValueField属性,用来指定提供值的数据源字段

例如下面代码,将图书列表以DropDownList控件进行显示,当用户选择了DropDownList控件中的某个值后,页面会进行相应的信息更新。

// .aspx文件
body>
    
    form id="form1" runat="server">
    
        div>
    
            !-- ListControl控件绑定DropDownList -->
    
            asp:Label ID="Label1" runat="server" Text="图书列表:">
    %# BookName %>
    /asp:Label>
    
            asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True" OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged">
    /asp:DropDownList>
    
        /div>
    
        div>
    
            asp:Label ID="Label2" runat="server" Text="图书编码:">
    /asp:Label>
    
            asp:Label ID="Label3" runat="server" Text="">
    /asp:Label>
    
        /div>
    
        div>
    
            asp:Label ID="Label4" runat="server" Text="图书名称:">
    /asp:Label>
    
            asp:Label ID="Label5" runat="server" Text="">
    /asp:Label>
    
        /div>
    
    /form>
    
/body>


// .aspx.cs文件
protected void Page_Load(object sender, EventArgs e){

    if (!IsPostBack) {
    
        SqlConnection sqlConnection = new SqlConnection("Server=DEITIVOD;
    Database=db_LibraryMS;
    User Id=sa;
    pwd=admin");
    
        SqlDataAdapter sqlDataAdapter = new SqlDataAdapter("select book_code, book_name from tb_bookinfo;
    ", sqlConnection);
    

        // 将查询到的数据放入一个DataSet
        DataSet dataSet = new DataSet();
    
        sqlDataAdapter.Fill(dataSet);
    

        // 对DropDownList执行指定数据源和数据绑定
        DropDownList1.DataSource = dataSet;
    
        DropDownList1.DataTextField = "book_name";
     // 指定要显示的字段
        DropDownList1.DataValueField = "book_code";
     // 指定要绑定的主键值
        DropDownList1.DataBind();

    }

}


protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e){
    
    Label3.Text = DropDownList1.SelectedValue;
    
    Label5.Text = DropDownList1.SelectedItem.Text;

}
    


执行效果如下:

数据库中的tb_bookinfo数据表的数据如下所示:


ASP页面中显示的数据:

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: ASP.NET 数据绑定详解 代码+步骤(上)
本文地址: https://pptw.com/jishu/298660.html
C#反射与特性(六):设计一个仿ASP.NETCore依赖注入Web ASP.NET Core 使用 Redis 实现分布式缓存:Docker、IDistributedCache、StackExchangeRedis

游客 回复需填写必要信息