天天看點

DataGrid 完全攻略之七(實作選擇、編輯和修改)

DataGrid 完全攻略之七(實作選擇、編輯和修改)

using System;

DataGrid 完全攻略之七(實作選擇、編輯和修改)

using System.Collections;

DataGrid 完全攻略之七(實作選擇、編輯和修改)

using System.ComponentModel;

DataGrid 完全攻略之七(實作選擇、編輯和修改)

using System.Data;

DataGrid 完全攻略之七(實作選擇、編輯和修改)

using System.Drawing;

DataGrid 完全攻略之七(實作選擇、編輯和修改)

using System.Web;

DataGrid 完全攻略之七(實作選擇、編輯和修改)

using System.Web.SessionState;

DataGrid 完全攻略之七(實作選擇、編輯和修改)

using System.Web.UI;

DataGrid 完全攻略之七(實作選擇、編輯和修改)

using System.Web.UI.WebControls;

DataGrid 完全攻略之七(實作選擇、編輯和修改)

using System.Web.UI.HtmlControls;

DataGrid 完全攻略之七(實作選擇、編輯和修改)

using System.Data.SqlClient;

DataGrid 完全攻略之七(實作選擇、編輯和修改)

namespace MsDataGrid

DataGrid 完全攻略之七(實作選擇、編輯和修改)

{

DataGrid 完全攻略之七(實作選擇、編輯和修改)

    /// <summary>

DataGrid 完全攻略之七(實作選擇、編輯和修改)

    /// WebForm1 的摘要說明。

DataGrid 完全攻略之七(實作選擇、編輯和修改)

    /// </summary>

DataGrid 完全攻略之七(實作選擇、編輯和修改)

    public class UserDelete : System.Web.UI.Page

DataGrid 完全攻略之七(實作選擇、編輯和修改)

    {

DataGrid 完全攻略之七(實作選擇、編輯和修改)

        protected System.Web.UI.WebControls.DataGrid dgShow;

DataGrid 完全攻略之七(實作選擇、編輯和修改)
DataGrid 完全攻略之七(實作選擇、編輯和修改)

        private void Page_Load(object sender, System.EventArgs e)

DataGrid 完全攻略之七(實作選擇、編輯和修改)

        {

DataGrid 完全攻略之七(實作選擇、編輯和修改)

            // 在此處放置使用者代碼以初始化頁面

DataGrid 完全攻略之七(實作選擇、編輯和修改)

            if(!IsPostBack)

DataGrid 完全攻略之七(實作選擇、編輯和修改)

                BindData();

DataGrid 完全攻略之七(實作選擇、編輯和修改)
DataGrid 完全攻略之七(實作選擇、編輯和修改)

        }

DataGrid 完全攻略之七(實作選擇、編輯和修改)

        private void BindData()

DataGrid 完全攻略之七(實作選擇、編輯和修改)
DataGrid 完全攻略之七(實作選擇、編輯和修改)

            string strCon = System.Configuration.ConfigurationSettings.AppSettings["DSN"];

DataGrid 完全攻略之七(實作選擇、編輯和修改)

            SqlConnection con = new SqlConnection(strCon);

DataGrid 完全攻略之七(實作選擇、編輯和修改)

            SqlDataAdapter da = new SqlDataAdapter("Select * from tbStudentinfo",con);

DataGrid 完全攻略之七(實作選擇、編輯和修改)

            DataSet ds = new DataSet();

DataGrid 完全攻略之七(實作選擇、編輯和修改)

            da.Fill(ds,"studentinfo");

DataGrid 完全攻略之七(實作選擇、編輯和修改)

            dgShow.DataSource = ds.Tables["studentinfo"].DefaultView;

DataGrid 完全攻略之七(實作選擇、編輯和修改)

            dgShow.DataBind();

DataGrid 完全攻略之七(實作選擇、編輯和修改)
DataGrid 完全攻略之七(實作選擇、編輯和修改)

        Web Form Designer generated code

DataGrid 完全攻略之七(實作選擇、編輯和修改)
DataGrid 完全攻略之七(實作選擇、編輯和修改)

        private void dgShow_EditCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)

DataGrid 完全攻略之七(實作選擇、編輯和修改)
DataGrid 完全攻略之七(實作選擇、編輯和修改)

            dgShow.EditItemIndex = e.Item.ItemIndex;

DataGrid 完全攻略之七(實作選擇、編輯和修改)

            BindData();

DataGrid 完全攻略之七(實作選擇、編輯和修改)
DataGrid 完全攻略之七(實作選擇、編輯和修改)
DataGrid 完全攻略之七(實作選擇、編輯和修改)

        private void dgShow_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)

DataGrid 完全攻略之七(實作選擇、編輯和修改)
DataGrid 完全攻略之七(實作選擇、編輯和修改)

            dgShow.CurrentPageIndex = e.NewPageIndex;

DataGrid 完全攻略之七(實作選擇、編輯和修改)
DataGrid 完全攻略之七(實作選擇、編輯和修改)
DataGrid 完全攻略之七(實作選擇、編輯和修改)

        private void dgShow_CancelCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)

DataGrid 完全攻略之七(實作選擇、編輯和修改)
DataGrid 完全攻略之七(實作選擇、編輯和修改)

            dgShow.EditItemIndex = -1;

DataGrid 完全攻略之七(實作選擇、編輯和修改)
DataGrid 完全攻略之七(實作選擇、編輯和修改)
DataGrid 完全攻略之七(實作選擇、編輯和修改)
DataGrid 完全攻略之七(實作選擇、編輯和修改)

        private void dgShow_DeleteCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)

DataGrid 完全攻略之七(實作選擇、編輯和修改)
DataGrid 完全攻略之七(實作選擇、編輯和修改)

            if(dgShow.Items.Count==1)

DataGrid 完全攻略之七(實作選擇、編輯和修改)

            {

DataGrid 完全攻略之七(實作選擇、編輯和修改)

                if(dgShow.CurrentPageIndex!=0)

DataGrid 完全攻略之七(實作選擇、編輯和修改)

                    dgShow.CurrentPageIndex = dgShow.CurrentPageIndex-1;

DataGrid 完全攻略之七(實作選擇、編輯和修改)

            }

DataGrid 完全攻略之七(實作選擇、編輯和修改)

            string strSql = "delete from tbStudentinfo where studentid="+e.Item.Cells[0].Text+"";

DataGrid 完全攻略之七(實作選擇、編輯和修改)

            ExecuteSql(strSql);

DataGrid 完全攻略之七(實作選擇、編輯和修改)
DataGrid 完全攻略之七(實作選擇、編輯和修改)
DataGrid 完全攻略之七(實作選擇、編輯和修改)
DataGrid 完全攻略之七(實作選擇、編輯和修改)

        ////////////////////////////////////////////////////////////

DataGrid 完全攻略之七(實作選擇、編輯和修改)

        //說明:執行制定SQL語句/////////////////////////////////////

DataGrid 完全攻略之七(實作選擇、編輯和修改)

        ///////////////////////////////////////////////////////////

DataGrid 完全攻略之七(實作選擇、編輯和修改)

        private void ExecuteSql(string strSql)

DataGrid 完全攻略之七(實作選擇、編輯和修改)
DataGrid 完全攻略之七(實作選擇、編輯和修改)

            try

DataGrid 完全攻略之七(實作選擇、編輯和修改)
DataGrid 完全攻略之七(實作選擇、編輯和修改)

                string strconn = System.Configuration.ConfigurationSettings.AppSettings["DSN"];//從Web.config中讀取

DataGrid 完全攻略之七(實作選擇、編輯和修改)

                SqlConnection conn =new SqlConnection(strconn);

DataGrid 完全攻略之七(實作選擇、編輯和修改)

                SqlCommand com = new SqlCommand(strSql,conn);

DataGrid 完全攻略之七(實作選擇、編輯和修改)

                conn.Open();

DataGrid 完全攻略之七(實作選擇、編輯和修改)

                com.ExecuteNonQuery();

DataGrid 完全攻略之七(實作選擇、編輯和修改)

                conn.Close();

DataGrid 完全攻略之七(實作選擇、編輯和修改)

            } 

DataGrid 完全攻略之七(實作選擇、編輯和修改)

            catch(Exception e)

DataGrid 完全攻略之七(實作選擇、編輯和修改)
DataGrid 完全攻略之七(實作選擇、編輯和修改)

                Response.Write("<script language = 'javascript'>alert('"+e.Message+"');</script>") ;

DataGrid 完全攻略之七(實作選擇、編輯和修改)
DataGrid 完全攻略之七(實作選擇、編輯和修改)
DataGrid 完全攻略之七(實作選擇、編輯和修改)
DataGrid 完全攻略之七(實作選擇、編輯和修改)
DataGrid 完全攻略之七(實作選擇、編輯和修改)

        private void dgShow_UpdateCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)

DataGrid 完全攻略之七(實作選擇、編輯和修改)
DataGrid 完全攻略之七(實作選擇、編輯和修改)

            string strStudentID = e.Item.Cells[0].Text;//處于非編輯狀态

DataGrid 完全攻略之七(實作選擇、編輯和修改)

            string strName = ((TextBox)(e.Item.Cells[1].Controls[0])).Text;//處于編輯狀态

DataGrid 完全攻略之七(實作選擇、編輯和修改)

            string strPass =((TextBox)(e.Item.Cells[2].Controls[0])).Text;

DataGrid 完全攻略之七(實作選擇、編輯和修改)

            string strSex = ((CheckBox)(e.Item.Cells[3].FindControl("cbSex"))).Checked?"1":"0";

DataGrid 完全攻略之七(實作選擇、編輯和修改)

            string strBirthday =((TextBox)(e.Item.Cells[4].Controls[0])).Text;

DataGrid 完全攻略之七(實作選擇、編輯和修改)

            string strEmail =((TextBox)(e.Item.Cells[5].Controls[0])).Text;

DataGrid 完全攻略之七(實作選擇、編輯和修改)

            string strSql = "update tbStudentinfo set StudentName='"+strName+"',StudentPass='"+strPass+"'";

DataGrid 完全攻略之七(實作選擇、編輯和修改)

            strSql +=",Sex="+strSex+",Birthday='"+strBirthday+"',Email='"+strEmail+"' where studentid="+strStudentID+"";

DataGrid 完全攻略之七(實作選擇、編輯和修改)
DataGrid 完全攻略之七(實作選擇、編輯和修改)
DataGrid 完全攻略之七(實作選擇、編輯和修改)
DataGrid 完全攻略之七(實作選擇、編輯和修改)
DataGrid 完全攻略之七(實作選擇、編輯和修改)
DataGrid 完全攻略之七(實作選擇、編輯和修改)
DataGrid 完全攻略之七(實作選擇、編輯和修改)

        private void dgShow_ItemCreated(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)

DataGrid 完全攻略之七(實作選擇、編輯和修改)
DataGrid 完全攻略之七(實作選擇、編輯和修改)

            switch(e.Item.ItemType)

DataGrid 完全攻略之七(實作選擇、編輯和修改)
DataGrid 完全攻略之七(實作選擇、編輯和修改)

                case ListItemType.Item:

DataGrid 完全攻略之七(實作選擇、編輯和修改)

                case ListItemType.EditItem:

DataGrid 完全攻略之七(實作選擇、編輯和修改)

                case ListItemType.AlternatingItem:

DataGrid 完全攻略之七(實作選擇、編輯和修改)

                    Button       myDeleteButton = (Button)e.Item.FindControl("btnDelete");

DataGrid 完全攻略之七(實作選擇、編輯和修改)

                    myDeleteButton.Text = "删除此行";

DataGrid 完全攻略之七(實作選擇、編輯和修改)

                    myDeleteButton.Attributes.Add("onclick", "return confirm('您真的要删除第 " + e.Item.ItemIndex.ToString() + " 行嗎?');");

DataGrid 完全攻略之七(實作選擇、編輯和修改)

                    break;

DataGrid 完全攻略之七(實作選擇、編輯和修改)
DataGrid 完全攻略之七(實作選擇、編輯和修改)
DataGrid 完全攻略之七(實作選擇、編輯和修改)
DataGrid 完全攻略之七(實作選擇、編輯和修改)

        private void dgShow_ItemCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)

DataGrid 完全攻略之七(實作選擇、編輯和修改)
DataGrid 完全攻略之七(實作選擇、編輯和修改)

            if(e.CommandName=="UserDelete")

DataGrid 完全攻略之七(實作選擇、編輯和修改)

                dgShow_DeleteCommand(source,e);

DataGrid 完全攻略之七(實作選擇、編輯和修改)
DataGrid 完全攻略之七(實作選擇、編輯和修改)

    }

DataGrid 完全攻略之七(實作選擇、編輯和修改)

}

DataGrid 完全攻略之七(實作選擇、編輯和修改)

前台代碼:html

DataGrid 完全攻略之七(實作選擇、編輯和修改)

<%@ Page language="c#" Codebehind="UserDelete.aspx.cs" AutoEventWireup="false" Inherits="MsDataGrid.UserDelete" %>

DataGrid 完全攻略之七(實作選擇、編輯和修改)

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >

DataGrid 完全攻略之七(實作選擇、編輯和修改)

<HTML>

DataGrid 完全攻略之七(實作選擇、編輯和修改)

    <HEAD>

DataGrid 完全攻略之七(實作選擇、編輯和修改)

        <title>DataGrid使用舉例</title>

DataGrid 完全攻略之七(實作選擇、編輯和修改)

        <meta name="GENERATOR" Content="Microsoft Visual Studio 7.0">

DataGrid 完全攻略之七(實作選擇、編輯和修改)

        <meta name="CODE_LANGUAGE" Content="C#">

DataGrid 完全攻略之七(實作選擇、編輯和修改)

        <meta name="vs_defaultClientScript" content="JavaScript">

DataGrid 完全攻略之七(實作選擇、編輯和修改)

        <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">

DataGrid 完全攻略之七(實作選擇、編輯和修改)

    </HEAD>

DataGrid 完全攻略之七(實作選擇、編輯和修改)

    <body MS_POSITIONING="GridLayout">

DataGrid 完全攻略之七(實作選擇、編輯和修改)

        <form id="Form1" method="post" runat="server">

DataGrid 完全攻略之七(實作選擇、編輯和修改)

            <FONT face="宋體">

DataGrid 完全攻略之七(實作選擇、編輯和修改)

                <asp:DataGrid id="dgShow" style="Z-INDEX: 101; LEFT: 69px; POSITION: absolute; TOP: 90px" runat="server" Width="842px" Height="172px" BorderColor="Tan" BorderWidth="1px" BackColor="LightGoldenrodYellow" CellPadding="2" GridLines="None" ForeColor="Black" AutoGenerateColumns="False" AllowPaging="True">

DataGrid 完全攻略之七(實作選擇、編輯和修改)

                    <SelectedItemStyle ForeColor="GhostWhite" BackColor="DarkSlateBlue"></SelectedItemStyle>

DataGrid 完全攻略之七(實作選擇、編輯和修改)

                    <AlternatingItemStyle BackColor="PaleGoldenrod"></AlternatingItemStyle>

DataGrid 完全攻略之七(實作選擇、編輯和修改)

                    <HeaderStyle Font-Bold="True" BackColor="Tan"></HeaderStyle>

DataGrid 完全攻略之七(實作選擇、編輯和修改)

                    <FooterStyle BackColor="Tan"></FooterStyle>

DataGrid 完全攻略之七(實作選擇、編輯和修改)

                    <Columns>

DataGrid 完全攻略之七(實作選擇、編輯和修改)

                        <asp:BoundColumn DataField="StudentID" ReadOnly="True" HeaderText="學生ID"></asp:BoundColumn>

DataGrid 完全攻略之七(實作選擇、編輯和修改)

                        <asp:BoundColumn DataField="StudentName" HeaderText="學生姓名"></asp:BoundColumn>

DataGrid 完全攻略之七(實作選擇、編輯和修改)

                        <asp:BoundColumn DataField="StudentPass" HeaderText="密碼"></asp:BoundColumn>

DataGrid 完全攻略之七(實作選擇、編輯和修改)

                        <asp:BoundColumn DataField="Sex" HeaderText="性别"></asp:BoundColumn>

DataGrid 完全攻略之七(實作選擇、編輯和修改)

                        <asp:BoundColumn DataField="Birthday" HeaderText="生日"></asp:BoundColumn>

DataGrid 完全攻略之七(實作選擇、編輯和修改)

                        <asp:BoundColumn DataField="Email" HeaderText="郵件位址"></asp:BoundColumn>

DataGrid 完全攻略之七(實作選擇、編輯和修改)

                        <asp:TemplateColumn HeaderText="性别模闆列">

DataGrid 完全攻略之七(實作選擇、編輯和修改)

                            <ItemTemplate>

DataGrid 完全攻略之七(實作選擇、編輯和修改)

                                <asp:RadioButton id=RadioButton2 runat="server" Text="男" Checked='<%# DataBinder.Eval(Container, "DataItem.Sex") %>' Enabled="False">

DataGrid 完全攻略之七(實作選擇、編輯和修改)

                                </asp:RadioButton>

DataGrid 完全攻略之七(實作選擇、編輯和修改)

                                <asp:RadioButton id=RadioButton1 runat="server" Text="女" Checked='<%# !(bool)DataBinder.Eval(Container, "DataItem.Sex") %>' Enabled="False">

DataGrid 完全攻略之七(實作選擇、編輯和修改)
DataGrid 完全攻略之七(實作選擇、編輯和修改)

                            </ItemTemplate>

DataGrid 完全攻略之七(實作選擇、編輯和修改)

                            <EditItemTemplate>

DataGrid 完全攻略之七(實作選擇、編輯和修改)

                                <asp:RadioButton id=cbSex runat="server" Text="男" Checked='<%# DataBinder.Eval(Container, "DataItem.Sex") %>' GroupName="Sex">

DataGrid 完全攻略之七(實作選擇、編輯和修改)
DataGrid 完全攻略之七(實作選擇、編輯和修改)

                                <asp:RadioButton id=RadioButton4 runat="server" Text="女" Checked='<%# !(bool)DataBinder.Eval(Container, "DataItem.Sex") %>' GroupName="Sex">

DataGrid 完全攻略之七(實作選擇、編輯和修改)
DataGrid 完全攻略之七(實作選擇、編輯和修改)

                            </EditItemTemplate>

DataGrid 完全攻略之七(實作選擇、編輯和修改)

                        </asp:TemplateColumn>

DataGrid 完全攻略之七(實作選擇、編輯和修改)

                        <asp:ButtonColumn Text="選擇" HeaderText="選擇" CommandName="Select"></asp:ButtonColumn>

DataGrid 完全攻略之七(實作選擇、編輯和修改)

                        <asp:EditCommandColumn ButtonType="LinkButton" UpdateText="更新" HeaderText="操作" CancelText="取消" EditText="編輯"></asp:EditCommandColumn>

DataGrid 完全攻略之七(實作選擇、編輯和修改)

                        <asp:ButtonColumn Text="删除" HeaderText="删除" CommandName="Delete"></asp:ButtonColumn>

DataGrid 完全攻略之七(實作選擇、編輯和修改)

                        <asp:TemplateColumn HeaderText="自定義删除">

DataGrid 完全攻略之七(實作選擇、編輯和修改)
DataGrid 完全攻略之七(實作選擇、編輯和修改)

                                <asp:Button id="btnDelete" runat="server" CommandName="UserDelete" Text="删除"></asp:Button>

DataGrid 完全攻略之七(實作選擇、編輯和修改)
DataGrid 完全攻略之七(實作選擇、編輯和修改)
DataGrid 完全攻略之七(實作選擇、編輯和修改)

                        <asp:HyperLinkColumn Text="點選檢視" DataNavigateUrlField="StudentID" DataNavigateUrlFormatString="Show.aspx?ID={0}" DataTextField="StudentName" HeaderText="詳細資訊"></asp:HyperLinkColumn>

DataGrid 完全攻略之七(實作選擇、編輯和修改)

                    </Columns>

DataGrid 完全攻略之七(實作選擇、編輯和修改)

                    <PagerStyle HorizontalAlign="Center" ForeColor="DarkSlateBlue" BackColor="PaleGoldenrod"></PagerStyle>

DataGrid 完全攻略之七(實作選擇、編輯和修改)

                </asp:DataGrid></FONT>

DataGrid 完全攻略之七(實作選擇、編輯和修改)

        </form>

DataGrid 完全攻略之七(實作選擇、編輯和修改)

    </body>

DataGrid 完全攻略之七(實作選擇、編輯和修改)

</HTML>

本文轉自高海東部落格園部落格,原文連結:http://www.cnblogs.com/ghd258/archive/2005/10/12/253218.html,如需轉載請自行聯系原作者

繼續閱讀