热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

ASP.Net课堂--实验5

1、新建一个网站,在网站中新建一个”images”文件夹,将FTP中的a.jpg和e.jpg拷贝到images文件夹中。2、新建test数据库,在test数据库中新建book_info表,结构如下

1、 新建一个网站,在网站中新建一个”images”文件夹,将FTP中的a.jpg和e.jpg拷贝到images文件夹中。

2、 新建test数据库,在test数据库中新建book_info表,结构如下:


当用户单击“详细信息”时(在超链接中显示“详细信息”不需设置HyperLinkField的“DataTextField”属性,只需设置”Text”属性的值为”详细信息”就行),导航到detail.aspx页面,在detail.aspx中显示该条记录的详细信息。

4、 在GridView.aspx页面中,通过在GridView控件中手动添加代码来在控件中添加一个文本框:

           

           

               runat="server"Text='<%#Eval("book_id") %>'>

            

         

  此段代码放置在里,作用通过建立一个模版,在GridView控件中添加一列,此列中包含一个文本框,将文本框中绑定到book_id列。

5、 参照PPT中的内容,添加gridview3.aspx页面,在此页面中只添加一个GridView控件。通过编程来实现在GridView中编辑数据。

A、首先通过编程将book_info表中的数据通过GridView显示;

B、再在GridView中添加“编辑”按钮:在”源“视图中在中添加代码:

     

C、编辑GridView控件的RowEditing、RowUpdating、RowCancelingEdit事件。

   注:e.RowIndex  为被编辑行在GridView中的行号(从0开始)

      GridView1.Rows[e.RowIndex].  为GridView中被编辑的行。

       GridView1.Rows[e.RowIndex].Cells[1].   为GridView中被编辑的行的第2列。

      GridView1.Rows[e.RowIndex].Cells[1].Controls[0]为GridView中被编辑的行的第2列中的第一个控件。

 

GridView.aspx

 

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












DataKeyNames="book_id" DataSourceID="SqlDataSource1"
EnableModelValidation="True">

SortExpression="book_name" />
SortExpression="author" />



Text="详细信息" />


runat="server" Text='<%# Eval("book_id") %>'>











COnnectionString="<%$ ConnectionStrings:testConnectionString %>"
SelectCommand="SELECT * FROM [book_info]">






gridview3.aspx

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











Onrowcancelingedit="GridView1_RowCancelingEdit"
Onrowediting="GridView1_RowEditing" Onrowupdating="GridView1_RowUpdating"
>











  gridview3.aspx.cx

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using System.Configuration;
using System.Data;

public partial class GridView3 : System.Web.UI.Page
{
//创建连接对象
public SqlConnection cOnn= new SqlConnection(ConfigurationManager.ConnectionStrings["testConnectionString"].ConnectionString);
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
myBind();
}
}


///
/// GridViews数据绑定
///

public void myBind()
{
string sqlStr = "select * from book_info";
SqlDataAdapter myDataAdapter = new SqlDataAdapter(sqlStr, conn);
DataSet myDataSet = new DataSet();
myDataAdapter.Fill(myDataSet, "book_info");
GridView1.DataSource = myDataSet;
GridView1.DataBind();
}

//编辑
protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
{
//设计编辑行的索引
GridView1.EditIndex = e.NewEditIndex;
myBind();
}
//更新
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
string book_id = ((TextBox)(GridView1.Rows[e.RowIndex].Cells[1].Controls[0])).Text.ToString();
string book_name = ((TextBox)(GridView1.Rows[e.RowIndex].Cells[2].Controls[0])).Text.ToString();
string author = ((TextBox)(GridView1.Rows[e.RowIndex].Cells[3].Controls[0])).Text.ToString();
string press = ((TextBox)(GridView1.Rows[e.RowIndex].Cells[4].Controls[0])).Text.ToString();
string price = ((TextBox)(GridView1.Rows[e.RowIndex].Cells[5].Controls[0])).Text.ToString();
string image_path = ((TextBox)(GridView1.Rows[e.RowIndex].Cells[6].Controls[0])).Text.ToString();

string sqlStr = "update book_info set book_name=@book_name,author=@author,press=@press,price=@price,image_path=@image_path where book_id=@book_id";
SqlParameter[] parameters = {new SqlParameter("@book_id", Convert.ToInt32(book_id)),
new SqlParameter("@book_name",book_name),
new SqlParameter("@author", author),
new SqlParameter("@press",press),
new SqlParameter("@price",Convert.ToInt32(price)),
new SqlParameter("@image_path", image_path)};


string sql = ConfigurationManager.ConnectionStrings["testConnectionString"].ConnectionString;
using (SqlConnection cOnn= new SqlConnection(sql))
{
conn.Open();
using (SqlCommand cmd = conn.CreateCommand())
{
cmd.CommandText = sqlStr;
cmd.Parameters.AddRange(parameters);
cmd.ExecuteNonQuery();
}
}
GridView1.EditIndex = -1;
myBind();
}
//取消操作
protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
{
GridView1.ShowFooter = false;
GridView1.EditIndex = -1;
myBind();
}
}



推荐阅读
  • 本文内容为asp.net微信公众平台开发的目录汇总,包括数据库设计、多层架构框架搭建和入口实现、微信消息封装及反射赋值、关注事件、用户记录、回复文本消息、图文消息、服务搭建(接入)、自定义菜单等。同时提供了示例代码和相关的后台管理功能。内容涵盖了多个方面,适合综合运用。 ... [详细]
  • 基于layUI的图片上传前预览功能的2种实现方式
    本文介绍了基于layUI的图片上传前预览功能的两种实现方式:一种是使用blob+FileReader,另一种是使用layUI自带的参数。通过选择文件后点击文件名,在页面中间弹窗内预览图片。其中,layUI自带的参数实现了图片预览功能。该功能依赖于layUI的上传模块,并使用了blob和FileReader来读取本地文件并获取图像的base64编码。点击文件名时会执行See()函数。摘要长度为169字。 ... [详细]
  • Mac OS 升级到11.2.2 Eclipse打不开了,报错Failed to create the Java Virtual Machine
    本文介绍了在Mac OS升级到11.2.2版本后,使用Eclipse打开时出现报错Failed to create the Java Virtual Machine的问题,并提供了解决方法。 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • 本文介绍了在SpringBoot中集成thymeleaf前端模版的配置步骤,包括在application.properties配置文件中添加thymeleaf的配置信息,引入thymeleaf的jar包,以及创建PageController并添加index方法。 ... [详细]
  • 本文详细介绍了Linux中进程控制块PCBtask_struct结构体的结构和作用,包括进程状态、进程号、待处理信号、进程地址空间、调度标志、锁深度、基本时间片、调度策略以及内存管理信息等方面的内容。阅读本文可以更加深入地了解Linux进程管理的原理和机制。 ... [详细]
  • 1,关于死锁的理解死锁,我们可以简单的理解为是两个线程同时使用同一资源,两个线程又得不到相应的资源而造成永无相互等待的情况。 2,模拟死锁背景介绍:我们创建一个朋友 ... [详细]
  • 后台获取视图对应的字符串
    1.帮助类后台获取视图对应的字符串publicclassViewHelper{将View输出为字符串(注:不会执行对应的ac ... [详细]
  • 《数据结构》学习笔记3——串匹配算法性能评估
    本文主要讨论串匹配算法的性能评估,包括模式匹配、字符种类数量、算法复杂度等内容。通过借助C++中的头文件和库,可以实现对串的匹配操作。其中蛮力算法的复杂度为O(m*n),通过随机取出长度为m的子串作为模式P,在文本T中进行匹配,统计平均复杂度。对于成功和失败的匹配分别进行测试,分析其平均复杂度。详情请参考相关学习资源。 ... [详细]
  • 本文介绍了通过ABAP开发往外网发邮件的需求,并提供了配置和代码整理的资料。其中包括了配置SAP邮件服务器的步骤和ABAP写发送邮件代码的过程。通过RZ10配置参数和icm/server_port_1的设定,可以实现向Sap User和外部邮件发送邮件的功能。希望对需要的开发人员有帮助。摘要长度:184字。 ... [详细]
  • 在project.properties添加#Projecttarget.targetandroid-19android.library.reference.1..Sliding ... [详细]
  • PDF内容编辑的两种小方法,你知道怎么操作吗?
    本文介绍了两种PDF内容编辑的方法:迅捷PDF编辑器和Adobe Acrobat DC。使用迅捷PDF编辑器,用户可以通过选择需要更改的文字内容并设置字体形式、大小和颜色来编辑PDF文件。而使用Adobe Acrobat DC,则可以通过在软件中点击编辑来编辑PDF文件。PDF文件的编辑可以帮助办公人员进行文件内容的修改和定制。 ... [详细]
  • 本文介绍了C#中数据集DataSet对象的使用及相关方法详解,包括DataSet对象的概述、与数据关系对象的互联、Rows集合和Columns集合的组成,以及DataSet对象常用的方法之一——Merge方法的使用。通过本文的阅读,读者可以了解到DataSet对象在C#中的重要性和使用方法。 ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
author-avatar
周茜闹心_325
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有