Web网络编程第四次试验:数据绑定

这篇具有很好参考价值的文章主要介绍了Web网络编程第四次试验:数据绑定。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

为了帮助同学们完成痛苦的实验课程设计,本作者将其作出的实验结果及代码贴至CSDN中,供同学们学习参考。如有不足或描述不完善之处,敬请各位指出,欢迎各位的斧正!

一、实验目的

1、掌握ListControl类控件与数据源的绑定方法。
2、熟练掌握GridView控件的应用。
3、掌握DetailsView控件的应用。

二、实验环境

Visual Studio 2019 ASP.Net Framework

三、实验内容

1、利用GridView控件设计并实现一个商品展示页。要求如下:
·浏览效果如图1所示。当选择不同的分类名时,显示该分类中包含的商品信息。若分类中包含多个商品,则分页显示商品信息。
·当单击“购买”链接时将页面重定向到购物车页面。
Web网络编程第四次试验:数据绑定
图1 “商品展示页”浏览效果
2、利用DetailsView控件实现数据插入、编辑和删除等操作。要求如下:
·浏览效果如图2所示。在插入和编辑数据时涉及的外键数据以下拉框形式进行选择输入。
Web网络编程第四次试验:数据绑定
图2 “数据浏览”效果
Web网络编程第四次试验:数据绑定
图3 “数据插入”效果
Web网络编程第四次试验:数据绑定
图4 “数据编辑”效果

四、代码及截图

1.ProductShow.aspx代码:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="ProductShow.aspx.cs" Inherits="ProShow" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title></title>
    <style type="text/css">
        .auto-style6 {
            width: 100%;
            height: 220px;
        }
        .auto-style7 {
            width: 140px;
        }
        .auto-style8 {
            width: 110px;
        }
    </style>
</head>
<body>
    <form id="form1" runat="server">
        <div>分类名:<asp:DropDownList ID="ddlCategory" runat="server" AutoPostBack="true" DataTextField="Name" DataValueField="CategoryId" OnSelectedIndexChanged="ddlCategory_SelectedIndexChanged"></asp:DropDownList><br/>
            <asp:GridView ID="GvProduct" runat="server" AllowPaging="True"   AutoGenerateColumns="False" PageSize="1" OnPageIndexChanging="gvProduct_PageIndexChanging">
                <PagerSettings FirstPageText="首页" LastPageText="尾页" NextPageText="下一页" PreviousPageText="上一页" Mode="NextPrevious" Position="TopAndBottom" />
                <Columns>                    
                    <asp:TemplateField>
                        <ItemTemplate>
                            <table>
                                <tr><td rowspan="4"><asp:Image ID="imgProduct" runat="server" imageUrl='<%# Bind("Image") %>' Width="100px" Height="100px"/></td><td>产品名称:</td><td><asp:Label ID="lblName" runat="server" Text='<%# Bind("Name") %>'></asp:Label></td></tr>
                                <tr><td >产品价格:</td><td><asp:Label ID="lblListPrice" runat="server" Text='<%# Bind("ListPrice") %>'></asp:Label></td></tr>
                                <tr><td >产品描述:</td> <td><asp:Label ID="lblDecsn" runat="server" Text='<%# Bind("Descn") %>'></asp:Label></td></tr>
                                <tr><td >库存:</td><td><asp:Label ID="lblQty" runat="server" Text='<%# Bind("Qty") %>'></asp:Label></td></tr>
                            </table>
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:HyperLinkField DataNavigateUrlFields="ProductId"
                        DataNavigateUrlFormatString="~/ShopCart.aspx?ProductId={0}" 
                        HeaderText="放入购物车" Text="购买"/>
                </Columns>
            </asp:GridView><br/>
        </div>
    </form>
</body>
</html>

设计界面:
Web网络编程第四次试验:数据绑定
ProductShow.aspx.cs:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class ProShow : System.Web.UI.Page
{
    MyPetShopDataContext db = new MyPetShopDataContext();
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            var categories = from c in db.Category select new{c.CategoryId,c.Name};
            foreach (var category in categories)
            {
                ddlCategory.Items.Add(new ListItem(category.Name.ToString(), category.CategoryId.ToString()));
            }
            Bind();
        }
    }
    protected void ddlCategory_SelectedIndexChanged(object sender, EventArgs e)
    {
        Bind();
    }

    protected void gvProduct_PageIndexChanging(object sender, GridViewPageEventArgs e)
    {
        GvProduct.PageIndex = e.NewPageIndex;
        Bind();
    }
    private void Bind()
    {
        int categoryId = int.Parse(ddlCategory.SelectedValue);
        var products = from p in db.Product where p.CategoryId == categoryId select p;
        GvProduct.DataSource = products;
        GvProduct.DataBind();
    }
}

运行截图:
Web网络编程第四次试验:数据绑定
更换分类为Bugs
Web网络编程第四次试验:数据绑定
单击下一页
Web网络编程第四次试验:数据绑定
再单击上一页
Web网络编程第四次试验:数据绑定
2.Details.aspx代码:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Detials.aspx.cs" Inherits="Detials" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
        <div>
            <asp:DetailsView ID="dvProduct" runat="server" AllowPaging="True" AutoGenerateRows="False" DataKeyNames="ProductId" DataSourceID="ldsProduct">
                <Fields>
                    <asp:BoundField DataField="ProductId" HeaderText="ProductId" 
                        InsertVisible="False" ReadOnly="True" SortExpression="ProductId" />
                    <asp:TemplateField HeaderText="CategoryId" SortExpression="CategoryId">
                        <EditItemTemplate>
                            <asp:DropDownList ID="ddlCategoryId" runat="server" DataSourceID="ldsCategory" DataTextField="Name" DataValueField="CategoryId">
                            </asp:DropDownList>
                        </EditItemTemplate>
                        <InsertItemTemplate>
                            <asp:DropDownList ID="ddlCategoryID" runat="server" DataSourceID="ldsCategory" DataTextField="Name" DataValueField="CategoryId">
                            </asp:DropDownList>
                        </InsertItemTemplate>
                        <ItemTemplate>
                            <asp:Label ID="lblCategoryId" runat="server" Text='<%# Bind("CategoryId") %>'></asp:Label>
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:BoundField DataField="ListPrice" HeaderText="ListPrice" SortExpression="ListPrice" />
                    <asp:BoundField DataField="UnitCost" HeaderText="UnitCost" SortExpression="UnitCost" />
                    <asp:TemplateField HeaderText="SuppId" SortExpression="SuppId">
                        <EditItemTemplate>
                            <asp:DropDownList ID="ddlSuppId" runat="server" DataSourceID="ldsSupplier" DataTextField="Name" DataValueField="SuppId">
                            </asp:DropDownList>
                        </EditItemTemplate>
                        <InsertItemTemplate>
                            <asp:DropDownList ID="ddlSuppId" runat="server" DataSourceID="ldsSupplier" DataTextField="Name" DataValueField="SuppId">
                            </asp:DropDownList>
                        </InsertItemTemplate>
                        <ItemTemplate>
                            <asp:Label ID="lblSuppId" runat="server" Text='<%# Bind("SuppId") %>'></asp:Label>
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:BoundField DataField="Name" HeaderText="Name" SortExpression="Name" />
                    <asp:BoundField DataField="Descn" HeaderText="Descn" SortExpression="Descn" />
                    <asp:BoundField DataField="Image" HeaderText="Image" SortExpression="Image" />
                    <asp:BoundField DataField="Qty" HeaderText="Qty" SortExpression="Qty" />
                    <asp:CommandField ShowDeleteButton="True" ShowEditButton="True" ShowInsertButton="True" />
                </Fields>
            </asp:DetailsView><br/>
            <asp:LinqDataSource ID="ldsProduct" runat="server"
                ContextTypeName="MyPetShopDataContext" EnableDelete="True"
                EnableInsert="True" EnableUpdate="True" EntityTypeName="" 
                TableName="Product"></asp:LinqDataSource><br/>
            <asp:LinqDataSource ID="ldsCategory" runat="server" 
                ContextTypeName="MyPetShopDataContext" EntityTypeName=""
                Select="new (CategoryId, Name)" TableName="Category"></asp:LinqDataSource><br/>
            <asp:LinqDataSource ID="ldsSupplier" runat="server" 
                ContextTypeName="MyPetShopDataContext" EntityTypeName="" 
                Select="new (SuppId, Name)" TableName="Supplier"></asp:LinqDataSource><br/>
        </div>
    </form>
</body>
</html>

设计页面:
Web网络编程第四次试验:数据绑定
运行截图:
Web网络编程第四次试验:数据绑定
单击“2”:
Web网络编程第四次试验:数据绑定
单击编辑:
Web网络编程第四次试验:数据绑定
将Qty修改为200后单击更新:
Web网络编程第四次试验:数据绑定
单击新建:
Web网络编程第四次试验:数据绑定
单击插入:
Web网络编程第四次试验:数据绑定
插入后单击删除
Web网络编程第四次试验:数据绑定

五、实验总结

在实验四的编程过程中,我通过在网络中大量搜索关于GridView的相关知识与操作技巧,结合数据库系统概论所学知识,对实验进行了反复尝试与修改,并最终对数据连接尤其是GridView在ASP.NET环境下的实践有了更深的理解。整个实验最终达到了令人较为满意的效果。文章来源地址https://www.toymoban.com/news/detail-483791.html

到了这里,关于Web网络编程第四次试验:数据绑定的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 《TCP IP网络编程》第四章

            根据数据传输方式的不同,基于网络协议的套接字一般分为 TCP 套接字和 UDP 套接字。因为 TCP 套接字是面向连接的,因此又被称为基于流(stream)的套接字。                 TCP 是 Transmission Control Protocol (传输控制协议)的简写,意为「对数据传输过程的

    2024年02月15日
    浏览(46)
  • 第四章 Linux网络编程 4.1 网络结构模式 4.2MAC地址、IP地址、端口

    C/S结构 简介 服务器 - 客户机 ,即 Client - Server(C/S)结构。C/S 结构通常采取两层结构。服务器负责数据的管理,客户机负责完成与用户的交互任务。客户机是因特网上访问别人信息的机器,服务器则是提供信息供人访问的计算机。 客户机通过局域网与服务器相连,接受用户

    2024年02月08日
    浏览(47)
  • linux【网络编程】TCP协议通信模拟实现、日志函数模拟、守护进程化、TCP协议通信流程、三次握手与四次挥手

    Tcp通信模拟实现与Udp通信模拟实现的区别不大,一个是面向字节流,一个是面向数据报;udp协议下拿到的数据可以直接发送,tcp协议下需要创建链接,用文件描述符完成数据的读写 1.1.1 接口认识 1.1.1.1 listen:监听socket 1.1.1.2 accept:获取连接 通信就用accept返回的文件描述符,

    2024年02月06日
    浏览(54)
  • Linux网络编程二(TCP三次握手、四次挥手、TCP滑动窗口、MSS、TCP状态转换、多进程/多线程服务器实现)

    TCP三次握手 TCP 三次握手 (TCP three-way handshake)是TCP协议建立可靠连接的过程,确保客户端和服务器之间可以进行可靠的通信。下面是TCP三次握手的详细过程: 假设客户端为A,服务器为B 1 、第一次握手(SYN=1,seq=500) A向B发送一个带有SYN标志位的数据包,表示A请求建立连接。

    2024年02月06日
    浏览(62)
  • Linux网络编程二(TCP图解三次握手及四次挥手、TCP滑动窗口、MSS、TCP状态转换、多进程/多线程服务器实现)

    1、TCP三次握手 TCP 三次握手 (TCP three-way handshake)是 TCP协议建立可靠连接 的过程,确保客户端和服务器之间可以进行可靠的通信。下面是TCP三次握手的 详细过程 : 假设客户端为A,服务器为B。 (1) 第一次握手 第一次握手(SYN=1,seq=500) A向B发送一个带有 SYN 标志位的数据包,

    2024年04月22日
    浏览(55)
  • jsp 网络社区便利店系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

    一、源码特点      JSP 网络社区便利店系统是一套完善的java web信息管理系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为TOMCAT7.0,Myeclipse8.5开发,数据库为Mysql5.0,使用java语言开发。 jsp 网络社区便利店系统M

    2024年02月12日
    浏览(51)
  • Aleo隐私智能合约编程__第四章__部署进链上Aleo Testnet3网络

    相关资料链接 官方部署文档 https://developer.aleo.org/testnet/getting_started/deploy_execute_demo/ 查看链上所有的程序 https://explorer.hamp.app/programs 测试网领水 https://twitter.com/AleoFaucet Aleo SDK在线工具 https://aleo.tools/ snarkOS源码 https://github.com/AleoHQ/snarkOS leo源码 https://github.com/AleoHQ/leo Aleo CSDN h

    2024年01月25日
    浏览(48)
  • 〖Web全栈开发①〗—网络编程基础(上)

    🏘️🏘️个人简介:以山河作礼。 🎖️🎖️: Python领域新星创作者,CSDN实力新星认证,阿里云社区专家博主 📌 计算机网络 : 📜📜计算机网络是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网

    2024年02月05日
    浏览(42)
  • 〖Web全栈开发②〗—网络编程基础(下)

    🏘️🏘️个人简介:以山河作礼。 🎖️🎖️: Python领域新星创作者,CSDN实力新星认证,阿里云社区专家博主 🎁🎁:Web全栈开发专栏:《Web全栈开发》免费专栏,欢迎阅读! 🎯 学习目标 能够知道TCP客户端程序的开发流程 1. TCP 网络应用程序开发流程的介绍 TCP 网络应用程

    2024年02月04日
    浏览(41)
  • C++中的网络编程和安全性:实现安全的Web应用程序和网络应用程序

    作者:禅与计算机程序设计艺术 《67. C++中的网络编程和安全性:实现安全的Web应用程序和网络应用程序》 1.1. 背景介绍 随着互联网的快速发展,网络应用程序在人们的生活和工作中扮演着越来越重要的角色,网络编程和安全性也成为了现代应用程序的重要组成部分。在网络

    2024年02月16日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包