ASP.Net课堂--实验5

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

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


   并向表中插入两条记录,两条记录中image_path字段的值分别为a.jpg和e.jpg在网站中的路径。

3、 新建Gridview.aspx页面,通过GridView控件按照下面的格式显示book_info中的数据:


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

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

<asp:templatefieldheadertext="Type">

            <itemtemplate>

            <asp:TextBoxID="TextBox1"datasourceid="SqlDataSource1"

               runat="server"Text='<%#Eval("book_id") %>'></asp:TextBox>

             </itemtemplate>

         </asp:templatefield>

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

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

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

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

      <asp:CommandFieldShowEditButton="true"/>

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" %>


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">


<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
            DataKeyNames="book_id" DataSourceID="SqlDataSource1" 
            EnableModelValidation="True">
            <Columns>
                <asp:BoundField DataField="book_name" HeaderText="book_name" 
                    SortExpression="book_name" />
                <asp:BoundField DataField="author" HeaderText="author" 
                    SortExpression="author" />
                <asp:BoundField DataField="price" HeaderText="price" SortExpression="price" />
                <asp:ImageField DataImageUrlField="image_path" HeaderText="图片">
                </asp:ImageField>
                <asp:HyperLinkField HeaderText="详细信息" NavigateUrl="~/Default.aspx" 
                    Text="详细信息" />
                <asp:templatefield headertext="Type">
            <itemtemplate>
            <asp:TextBox ID="TextBox1" datasourceid="SqlDataSource1"
               runat="server" Text='<%# Eval("book_id") %>'></asp:TextBox>
             </itemtemplate>
          </asp:templatefield>






            </Columns>
        </asp:GridView>
    </div>
    <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
        ConnectionString="<%$ ConnectionStrings:testConnectionString %>" 
        SelectCommand="SELECT * FROM [book_info]"></asp:SqlDataSource>
    </form>
</body>
</html>
 


gridview3.aspx

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

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    
    <asp:GridView ID="GridView1" runat="server" EnableModelValidation="True" 
            onrowcancelingedit="GridView1_RowCancelingEdit" 
            onrowediting="GridView1_RowEditing" onrowupdating="GridView1_RowUpdating" 
            >
        <Columns>
            <asp:CommandField ShowEditButton="True" />
        </Columns>
        
    </asp:GridView>
    </div>
    </form>
</body>
</html>


  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();
        }  
    }


    /// <summary>
    /// GridViews数据绑定
    /// </summary>
    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();
    }
}


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小巫技术博客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值