GridView中带dropdownlist的基本用法(修改,删除)

Posted on 2008-04-25 10:17  94igoogle  阅读(370)  评论(0编辑  收藏  举报

1.选择Northwind 库中,在查询器中运行sql脚本
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[test02]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[test02]
GO

CREATE TABLE [dbo].[test02] (
 [id] [decimal](18, 0) IDENTITY (1, 1) NOT NULL ,
 [name] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
 [card] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
 [xueli] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
 [price] [decimal](18, 0) NULL ,
 [createdate] [datetime] NULL
) ON [PRIMARY]
GO


2.运行sql插入语句

insert into test02 (name,card,xueli,price) values('fdf','222','1','1323')
insert into test02 (name,card,xueli,price) values('idf','222','2','1323')
insert into test02 (name,card,xueli,price) values('df','222','1','1323')
insert into test02 (name,card,xueli,price) values('ikqqsfdf','222','3','1323')
insert into test02 (name,card,xueli,price) values('ikdf','222','1','1323')
insert into test02 (name,card,xueli,price) values('ikqqsfdf','222','1','1323')
insert into test02 (name,card,xueli,price) values('ikqqsfdf','222','2','1323')
insert into test02 (name,card,xueli,price) values('ikqqsfdf','222','1','1323')
insert into test02 (name,card,xueli,price) values('ikqqsfdf','222','3','1323')
insert into test02 (name,card,xueli,price) values('ikqqsfdf','222','1','1323')
insert into test02 (name,card,xueli,price) values('ikqqsfdf','222','2','1323')

3.配置webconfig文件
<configuration>
  <appSettings>
    <!--数据库连接串-->
    <add key="ConnectionString" value="data source=.;initial catalog=Northwind;user id=sa;password=111;persist security info=true;packet size=4096"/>
   
  </appSettings>
 
 <connectionStrings>
  <add name="connectionStrings1" connectionString="Data Source=.;Initial Catalog=Northwind;User ID=sa;Password=111"
   providerName="System.Data.SqlClient" />
 </connectionStrings>

4.先建.aspx,HTML 如下:

    <title>无标题页</title>
</head>
<body>
    <form id="form1" runat="server">
        <div>
            <table cellpadding="0" cellspacing="0" border="0" width="80%" style="font-size: 11px" align="center">
                <tr >
                    <td align="center">
                        <asp:GridView ID="GridView1" runat="server" Width="100%" CellPadding="3"
                            AutoGenerateColumns="False" AllowPaging="True" PageSize="12" OnRowCancelingEdit="GridView1_RowCancelingEdit"
                            OnRowEditing="GridView1_RowEditing" OnRowUpdating="GridView1_RowUpdating" OnRowDeleting="GridView1_RowDeleting"
                            DataKeyNames="id,name" OnPageIndexChanging="GridView1_PageIndexChanging" DataMember="card,price"
                            OnRowDataBound="GridView1_RowDataBound" BackColor="White" BorderColor="#CCCCCC" BorderStyle="None" BorderWidth="1px">
                            <Columns>
                                <asp:BoundField HeaderText="编号" DataField="id" ReadOnly="True" />
                                <asp:BoundField DataField="name" HeaderText="姓名" ReadOnly="True" />
                                <asp:TemplateField HeaderText="身份证号">
                                    <ItemTemplate>
                                        <%# Eval("card") %>
                                    </ItemTemplate>
                                    <EditItemTemplate>
                                        <asp:TextBox ID="TBCard" Text='<%# Eval("card") %>' runat="server" Width="140px" />
                                    </EditItemTemplate>
                                    <ItemStyle Width="150px" />
                                </asp:TemplateField>
                                <asp:TemplateField HeaderText="学历">
                                    <ItemTemplate>
                                        <%# Eval("xueliText")%>
                                    </ItemTemplate>
                                    <EditItemTemplate>
                                        <asp:HiddenField ID="HDFXueli" runat="server" Value='<%# Eval("xueli") %>' />
                                        <asp:DropDownList ID="DDLXueli" runat="server" Width="90px" />
                                    </EditItemTemplate>
                                    <ItemStyle Width="100px" />
                                </asp:TemplateField>
                                <asp:TemplateField HeaderText="价格">
                                    <ItemTemplate>
                                        <%# Eval("price") %>
                                    </ItemTemplate>
                                    <EditItemTemplate>
                                        <asp:TextBox ID="TBPrice" Text='<%# Eval("price") %>' runat="server" Width="90px" />
                                    </EditItemTemplate>
                                    <ItemStyle Width="100px" />
                                </asp:TemplateField>
                                <asp:BoundField HeaderText="建立时间" DataField="createdate" ReadOnly="True" />
                                <asp:CommandField ShowDeleteButton="True" ShowEditButton="True" HeaderText="操作" DeleteImageUrl="~/delete.gif" EditImageUrl="~/a.gif" />
                            </Columns>
                            <RowStyle Height="20px" ForeColor="#000066" />
                            <FooterStyle BackColor="White" ForeColor="#000066" />
                            <SelectedRowStyle BackColor="#669999" Font-Bold="True" ForeColor="White" />
                            <PagerStyle BackColor="White" ForeColor="#000066" HorizontalAlign="Left" />
                            <HeaderStyle BackColor="#006699" Font-Bold="True" ForeColor="White" />
                        </asp:GridView>
                    </td>
                </tr>
            </table>
        </div>
    </form>
</body>
</html>


5.cs 代码如下:
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;

public partial class gridview01 : System.Web.UI.Page
{
    public string connStr
    {
        get
        {
            return ConfigurationManager.AppSettings["ConnectionString"];
        }
    }

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            GridViewBind();
        }
    }

    //帮定gridview,并读取数据
    private void GridViewBind()
    {
        //string connStr = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
        //string connStr = "Data Source=(local);DataBase=Northwind;User ID=sa;PWD=111";
        string SqlStr = "SELECT *,case xueli when '1' then '大学' when '2' then '中学' when '3' then '小学' else '' end as xueliText FROM test02 where id<50 and id>2";
        DataSet ds = new DataSet();

        try
        {
            SqlConnection conn = new SqlConnection(connStr);
            if (conn.State.ToString() == "Closed") conn.Open();
            SqlDataAdapter da = new SqlDataAdapter(SqlStr, conn);
            da.Fill(ds, "test01");
            if (conn.State.ToString() == "Open") conn.Close();

            GridView1.DataSource = ds.Tables[0].DefaultView;
            GridView1.DataBind();
        }
        catch (Exception ex)
        {
            Response.Write("数据库错误,错误原因:" + ex.Message);
            Response.End();
        }
    }
   
    protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
    {
        GridView1.EditIndex = e.NewEditIndex;
        GridViewBind();
    }

    protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
    {
        GridView1.EditIndex = -1;
        GridViewBind();
    }

    //修改列表中的各行数据
    protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
    {
        string id = GridView1.DataKeys[e.RowIndex].Values[0].ToString();
        string card = ((TextBox)GridView1.Rows[e.RowIndex].FindControl("TBCard")).Text;
        string xueli = ((DropDownList)GridView1.Rows[e.RowIndex].FindControl("DDLXueli")).SelectedValue;
        string price = ((TextBox)GridView1.Rows[e.RowIndex].FindControl("TBPrice")).Text;

        string connStr = ConfigurationManager.ConnectionStrings["connectionStrings1"].ConnectionString;
        string SqlStr = "update test02 set card='" + card + "',xueli='" + xueli + "',price='" + price + "' where id=" + id;

        try
        {
            SqlConnection conn = new SqlConnection(connStr);
            if (conn.State.ToString() == "Closed") conn.Open();
            SqlCommand comm = new SqlCommand(SqlStr, conn);
            comm.ExecuteNonQuery();
            comm.Dispose();
            if (conn.State.ToString() == "Open") conn.Close();

            GridView1.EditIndex = -1;
            GridViewBind();
        }
        catch (Exception ex)
        {
            Response.Write("数据库错误,错误原因:" + ex.Message);
            Response.End();
        }
    }

    protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
    {
        //第1种
        string id = GridView1.DataKeys[e.RowIndex].Values[0].ToString();
        string connStr = ConfigurationManager.ConnectionStrings["connectionStrings1"].ConnectionString;
        string SqlStr = "delete from test02 where id=" + id;

        try
        {
            SqlConnection conn = new SqlConnection(connStr);
            if (conn.State.ToString() == "Closed") conn.Open();
            SqlCommand comm = new SqlCommand(SqlStr, conn);
            comm.ExecuteNonQuery();
            comm.Dispose();
            if (conn.State.ToString() == "Open") conn.Close();

            GridView1.EditIndex = -1;
            GridViewBind();
        }
        catch (Exception ex)
        {
            Response.Write("数据库错误,错误原因:" + ex.Message);
            Response.End();
        }

    }

    protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        //第1种
        if (((DropDownList)e.Row.FindControl("DDLXueli")) != null)
        {
            DropDownList ddlxueli = (DropDownList)e.Row.FindControl("DDLXueli");

            //  生成 DropDownList 的值,也可以取得数据库中的数据绑定
            ddlxueli.Items.Clear();
            ddlxueli.Items.Add(new ListItem("大学", "1"));
            ddlxueli.Items.Add(new ListItem("中学", "2"));
            ddlxueli.Items.Add(new ListItem("小学", "3"));
            //

            //  选中 DropDownList
            ddlxueli.SelectedValue = ((HiddenField)e.Row.FindControl("HDFXueli")).Value;
            //
        }

    }

    //翻页
    protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
    {
        GridView1.PageIndex = e.NewPageIndex;
        GridViewBind();
    }
}

 


 

Copyright © 2024 94igoogle
Powered by .NET 8.0 on Kubernetes