• gridveiw操作大全


    本文操作数据库使用的是OracleHelp类实现的。参见PetShop

    1 gridview的绑定

    调用如下:

                String ziDianMingChenSql = "select distinct 字典名称,字典编号,zidianmingcheng.SN from zidianmingcheng,xitongzidian where 模块类别= " + "'" + this.LabelLeiBei.Text + "' AND 可否编辑='是' ";
                ziDianMingChenGrid(ziDianMingChenSql);

        /// <summary>
        /// 填充GridView
        /// </summary>
        private void ziDianMingChenGrid(String querySql)
        {
            DataSet ds = new DataSet();
            ds = GetData(querySql);

            // 清空以前的数据源
            GridViewZiDianMingChen.DataSource = null;

            // 将ds作为信息栏GridView的数据源
            GridViewZiDianMingChen.DataSource = ds;

            // 绑定数据
            GridViewZiDianMingChen.DataBind();

            // 保存数据源 防止丢失 VS的破Bug
            ViewState["GridViewZiDianMingChen_DataSource"] = GridViewZiDianMingChen.DataSource;
            // 保存SQL语句
            ViewState["sqlGridViewZiDianMingChen"] = querySql;
        }

        /// <summary>
        /// 转换SQL查询结果为DataSet
        /// </summary>
        /// <returns>ds</returns>
        private DataSet GetData(String querySql)
        {
            String connStr = OracleHelper.DatabaseConnStr;

            // 创建数据集
            DataSet ds = OracleHelper.ExeSqlForDataSet(connStr, CommandType.Text, querySql, null);

            return ds;
        }

     

    2   gridview 换行控制
            this.GridViewZiDianMingChen.Attributes.Add("style", "word-break:keep-all;word-wrap:normal");
            this.GridViewXinXiLan.Attributes.Add("style", "word-break:keep-all;word-wrap:normal");

     3  编辑

       /// <summary>
        /// 编辑
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void GridViewZiDianMingChen_RowEditing(object sender, GridViewEditEventArgs e)
        {
            GridViewZiDianMingChen.EditIndex = e.NewEditIndex;
            String querySql = "select distinct 字典名称,字典编号,zidianmingcheng.SN from zidianmingcheng,xitongzidian where 模块类别= " + "'" + this.LabelLeiBei.Text + "' AND 可否编辑='是' ";
            ziDianMingChenGrid(querySql);
        }

    4 取消

        /// <summary>
        /// 取消
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void GridViewZiDianMingChen_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
        {
            GridViewZiDianMingChen.EditIndex = -1;
            String querySql = "select distinct 字典名称,字典编号,zidianmingcheng.SN from zidianmingcheng,xitongzidian where 模块类别= " + "'" + this.LabelLeiBei.Text + "' AND 可否编辑='是' ";
            ziDianMingChenGrid(querySql);
        }

    5 更新   

        /// <summary>
        /// 更新
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void GridViewZiDianMingChen_RowUpdating(object sender, GridViewUpdateEventArgs e)
        {
            string sn = GridViewZiDianMingChen.DataKeys[e.RowIndex].Values[0].ToString().Trim();
            String delXinWenSql = "UPDATE zidianmingcheng SET 字典名称 = '" + ((TextBox)(GridViewZiDianMingChen.Rows[e.RowIndex].Cells[1].Controls[0])).Text.ToString().Trim() + "' WHERE SN = '" + sn + "'";

            OracleConnection conn = new OracleConnection(OracleHelper.DatabaseConnStr);
            conn.Open();
            OracleTransaction trans = conn.BeginTransaction(IsolationLevel.ReadCommitted);

            try
            {
                OracleHelper.ExecuteNonQuery(trans, CommandType.Text, delXinWenSql, null);
                trans.Commit();
            }
            catch (Exception ex)
            {
                trans.Rollback();
                ex.ToString();
            }
            finally
            {
                conn.Close();
            }

            GridViewZiDianMingChen.EditIndex = -1;

            String querySql = "select distinct 字典名称,字典编号,zidianmingcheng.SN from zidianmingcheng,xitongzidian where 模块类别= " + "'" + this.LabelLeiBei.Text + "' AND 可否编辑='是' ";
            ziDianMingChenGrid(querySql);
        }

    6 删除
        /// <summary>
        /// 删除字典项
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void GridViewXinXiLan_RowDeleting(object sender, GridViewDeleteEventArgs e)
        {
            String sn = GridViewXinXiLan.DataKeys[e.RowIndex].Values[0].ToString().Trim();

            String delSql = "DELETE FROM xitongzidian WHERE SN = '" + sn + "'";

            OracleConnection conn = new OracleConnection(OracleHelper.DatabaseConnStr);
            conn.Open();
            OracleTransaction trans = conn.BeginTransaction(IsolationLevel.ReadCommitted);

            try
            {
                OracleHelper.ExecuteNonQuery(trans, CommandType.Text, delSql, null);
                trans.Commit();
            }
            catch (Exception ex)
            {
                trans.Rollback();
                ex.ToString();
            }
            finally
            {
                conn.Close();
            }

            GridViewXinXiLan.EditIndex = -1;
            String ziDianBianHao = this.GridViewZiDianMingChen.Rows[this.GridViewZiDianMingChen.SelectedRow.RowIndex].Cells[2].Text.ToString().Trim();
            String querySql = "SELECT 序号,名称,SN FROM xitongzidian WHERE ID='" + ziDianBianHao + "'";
            fillGridView(querySql);
        }

    7 删除弹出对话框

        /// <summary>
        /// 实现删除弹出对话框
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void GridViewXinXiLan_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            //如果是绑定数据行
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                if (e.Row.RowState == DataControlRowState.Normal || e.Row.RowState == DataControlRowState.Alternate)
                {
                    ((LinkButton)e.Row.Cells[4].Controls[0]).Attributes.Add("onclick", "javascript:return confirm('你确认要删除:\"" + e.Row.Cells[1].Text.Trim() + "\"吗?')");
                }
            }

        }

    上面的代码如果一列中有2个控件会报错.用下面的即可.

            //如果是绑定数据行
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                if (e.Row.RowState == DataControlRowState.Normal || e.Row.RowState == DataControlRowState.Alternate)
                {
                    //((LinkButton)e.Row.Cells[12].Controls[0]).Attributes.Add("onclick", "javascript:return confirm('你确认要删除:\"" + e.Row.Cells[1].Text.Trim() + "\"吗?')");
                    ((LinkButton)e.Row.FindControl("LinkButton3")).Attributes.Add("onclick", "javascript:return confirm('你确认要删除:\"" + e.Row.Cells[1].Text.Trim() + "\"吗?')");
                }
            }

    运行图如下:

    图2: 点击选择按钮后显示另一个gridview。

    3 编辑左边的gridview。可以设置字典编号为只读而使得其不可编辑

    4 点击右边的删除按钮

    5 点击右边的新增按钮

    详细代码:

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

    <!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>
        <link href="http://www.cnblogs.com/css/style.css" _fcksavedurl=""http://www.cnblogs.com/css/style.css"" _fcksavedurl=""http://www.cnblogs.com/css/style.css"" _fcksavedurl=""http://www.cnblogs.com/css/style.css"" _fcksavedurl=""http://www.cnblogs.com/css/style.css"" _fcksavedurl=""http://www.cnblogs.com/css/style.css"" _fcksavedurl=""http://www.cnblogs.com/css/style.css"" rel="stylesheet" type="text/css" />
    </head>
    <body>
        <form id="formDictSet" runat="server">
        <div>
            <table>
                <tr>
                    <td>
                        <asp:Label ID="LabelDangQianZhuanTai" runat="server" Font-Size="10pt" Text="当前状态:"></asp:Label></td>
                    <td>
                        &nbsp;<asp:Label ID="LabelMouKua" runat="server" Text="模块字典设置" ForeColor="#FF8000"></asp:Label></td>
                </tr>
            </table>
            <img alt="图象" height="5" src="http://www.cnblogs.com/Images/funcLine.JPG" width="933" /><br />
        <table>
        <tr>
        <td valign="top" >
            </td>
        <td valign="top" style="height: 168px">
        <asp:GridView ID="GridViewZiDianMingChen" runat="server" AutoGenerateColumns="False"
                CellPadding="4" ForeColor="#333333" GridLines="None" PageSize="1" EmptyDataText=" " OnRowCancelingEdit="GridViewZiDianMingChen_RowCancelingEdit" OnRowEditing="GridViewZiDianMingChen_RowEditing" OnRowUpdating="GridViewZiDianMingChen_RowUpdating" DataKeyNames="SN" OnSelectedIndexChanged="GridViewZiDianMingChen_SelectedIndexChanged1">
                <PagerSettings Visible="False" />
                <FooterStyle BackColor="#507CD1" Font-Bold="True" Font-Size="Small" ForeColor="White" />
                <Columns>
                    <asp:TemplateField HeaderText="选择" ShowHeader="False">
                        <ItemStyle Wrap="False" HorizontalAlign="Center" />
                        <ItemTemplate>
                            <asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="False" CommandName="Select"
                                Text="选择"></asp:LinkButton>
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:BoundField DataField="字典名称" HeaderText="字典名称">
                        <ItemStyle Wrap="False" HorizontalAlign="Left" Width="132px" />
                    </asp:BoundField>
                    <asp:BoundField DataField="字典编号" HeaderText="字典编号" ReadOnly="True" >
                        <ItemStyle HorizontalAlign="Left" />
                    </asp:BoundField>
                    <asp:BoundField DataField="SN" HeaderText="SN" Visible="False" />
                    <asp:CommandField CancelText="取消" DeleteText="删除" EditText="编辑" HeaderText="编辑" InsertText="插入"
                        NewText="新建" SelectText="选择" ShowEditButton="True" UpdateText="更新" >
                        <ItemStyle HorizontalAlign="Center" />
                    </asp:CommandField>
                </Columns>
                <RowStyle BackColor="#EFF3FB" />
                <EditRowStyle BackColor="#2461BF" />
                <SelectedRowStyle BackColor="DodgerBlue" Font-Bold="False" ForeColor="#333333" />
                <PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" />
                <HeaderStyle BackColor="#507CD1" Font-Bold="True" Font-Size="10pt" ForeColor="White" />
                <AlternatingRowStyle BackColor="White" />
            </asp:GridView>
        </td>
        <td style="height: 168px" valign="top">
         <asp:GridView ID="GridViewXinXiLan" runat="server" CellPadding="4"
                ForeColor="#333333" GridLines="None" AutoGenerateColumns="False" DataKeyNames="SN" Width="400px" OnRowCancelingEdit="GridViewXinXiLan_RowCancelingEdit" OnRowDeleting="GridViewXinXiLan_RowDeleting" OnRowEditing="GridViewXinXiLan_RowEditing" OnRowUpdating="GridViewXinXiLan_RowUpdating" OnRowDataBound="GridViewXinXiLan_RowDataBound">
                <PagerSettings Visible="False" />
                <FooterStyle BackColor="#507CD1" Font-Bold="True" Font-Size="Small" ForeColor="White" />
                <Columns>
                    <asp:BoundField DataField="序号" HeaderText="序号" >
                        <ItemStyle HorizontalAlign="Left" Width="60px" Wrap="False" />
                    </asp:BoundField>
                    <asp:BoundField DataField="名称" HeaderText="名称" >
                        <ItemStyle HorizontalAlign="Left" Width="132px" Wrap="False" />
                    </asp:BoundField>
                    <asp:BoundField DataField="SN" HeaderText="SN" Visible="False" />
                    <asp:CommandField CancelText="取消" DeleteText="删除" EditText="编辑" HeaderText="编辑" ShowEditButton="True"
                        UpdateText="更新" >
                        <ItemStyle HorizontalAlign="Center" Wrap="False" />
                    </asp:CommandField>
                    <asp:CommandField DeleteText="删除" HeaderText="删除" ShowDeleteButton="True" >
                        <ItemStyle HorizontalAlign="Center" Wrap="False" />
                    </asp:CommandField>
                </Columns>
                <RowStyle BackColor="#EFF3FB" />
                <EditRowStyle BackColor="#2461BF" />
                <SelectedRowStyle BackColor="DodgerBlue" Font-Bold="False" ForeColor="#333333" />
                <PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" />
                <HeaderStyle BackColor="#507CD1" Font-Bold="True" Font-Size="10pt" ForeColor="White" />
                <AlternatingRowStyle BackColor="White" />
            </asp:GridView>
            <asp:TextBox ID="TextBoxXuHao" runat="server" Visible="False" Width="60px"></asp:TextBox>
            <asp:TextBox ID="TextBoxMingCheng" runat="server" Visible="False"></asp:TextBox>
            <asp:Button ID="ButtonTianJia" runat="server" OnClick="ButtonTianJia_Click" Text="新增" Visible="False" />
            <asp:Button ID="ButtonBaoCun" runat="server" OnClick="ButtonBaoCun_Click" Text="保存"
                Visible="False" />
            <asp:Button ID="ButtonCancel" runat="server" OnClick="ButtonCancel_Click" Text="取消"
                Visible="False" /></td>
        </tr>
        </table>
            <img alt="图象" height="5" src="http://www.cnblogs.com/Images/funcLine.JPG" width="933" /><br />
            <br />

            <asp:Label ID="LabelLeiBei" runat="server" Text="1" Visible="False"></asp:Label>
            <br />
            <asp:Label ID="LabelZhuJian" runat="server" Text="隐藏主键" Visible="False"></asp:Label>
            </div>
        </form>
    </body>
    </html>

    cs代码:

    /*----------------------------------------------------------------
    // Copyright (C) 2007
    // 作者:马如林
    // 时间:2007/06/03
    // 文件名:
    // 文件功能描述:
    //                  系统字典管理页面
    //                 
    //
    // 修改标识:
    // 修改描述:
    //
    //----------------------------------------------------------------*/

    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.Globalization;
    using System.Data.OracleClient;
    using System.IO;
    using System.Text;

    using Hhxx.App_Code.DatabaseOperate;
    using Hhxx.App_Code.Database;
    using Hhxx.App_Code.Common;


    public partial class InterFace_SysDict_DictsSet : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                // 获取传送的第一个参数 用来表明是国内还是国外还是行业新闻 参见left.cs跳转页面
                String leiBei = Request.Params[0].ToString();
                switch (leiBei)
                {
                    case "one": LabelLeiBei.Text = "1";
                        this.LabelMouKua.Text = "信息中心模块设置";
                        break;
                    case "two": LabelLeiBei.Text = "2";
                        this.LabelMouKua.Text = "经营中心模块设置";
                        break;
                    case "three": LabelLeiBei.Text = "3";
                        this.LabelMouKua.Text = "管理中心模块设置";
                        break;
                    case "four": LabelLeiBei.Text = "4";
                        this.LabelMouKua.Text = "办公中心模块设置";
                        break;
                    case "five": LabelLeiBei.Text = "5";
                        this.LabelMouKua.Text = "报表中心模块设置";
                        break;
                    case "six": LabelLeiBei.Text = "6";
                        this.LabelMouKua.Text = "系统设置模块设置";
                        break;
                    case "seven": LabelLeiBei.Text = "7";
                        this.LabelMouKua.Text = "便捷服务模块设置";
                        break;
                    default: break;
                }

                String ziDianMingChenSql = "select distinct 字典名称,字典编号,zidianmingcheng.SN from zidianmingcheng,xitongzidian where 模块类别= " + "'" + this.LabelLeiBei.Text + "' AND 可否编辑='是' ";
                ziDianMingChenGrid(ziDianMingChenSql);

            }

            // gridview 换行控制
            this.GridViewZiDianMingChen.Attributes.Add("style", "word-break:keep-all;word-wrap:normal");
            this.GridViewXinXiLan.Attributes.Add("style", "word-break:keep-all;word-wrap:normal");
        }

        /// <summary>
        /// 填充GridView
        /// </summary>
        private void ziDianMingChenGrid(String querySql)
        {
            DataSet ds = new DataSet();
            ds = GetData(querySql);

            // 清空以前的数据源
            GridViewZiDianMingChen.DataSource = null;

            // 将ds作为信息栏GridView的数据源
            GridViewZiDianMingChen.DataSource = ds;

            // 绑定数据
            GridViewZiDianMingChen.DataBind();

            // 保存数据源 防止丢失 VS的破Bug
            ViewState["GridViewZiDianMingChen_DataSource"] = GridViewZiDianMingChen.DataSource;
            // 保存SQL语句
            ViewState["sqlGridViewZiDianMingChen"] = querySql;
        }


        /// <summary>
        /// 填充GridView
        /// </summary>
        private void fillGridView(String querySql)
        {
            DataSet ds = new DataSet();
            ds = GetData(querySql);

            // 清空以前的数据源
            GridViewXinXiLan.DataSource = null;

            // 将ds作为信息栏GridView的数据源
            GridViewXinXiLan.DataSource = ds;

            // 绑定数据
            GridViewXinXiLan.DataBind();

            // 保存数据源 防止丢失 VS的破Bug
            ViewState["GridViewXinXiLan_DataSource"] = GridViewXinXiLan.DataSource;
            // 保存SQL语句
            ViewState["sql"] = querySql;
        }

        /// <summary>
        /// 转换SQL查询结果为DataSet
        /// </summary>
        /// <returns>ds</returns>
        private DataSet GetData(String querySql)
        {
            String connStr = OracleHelper.DatabaseConnStr;

            // 创建数据集
            DataSet ds = OracleHelper.ExeSqlForDataSet(connStr, CommandType.Text, querySql, null);

            return ds;
        }

        /// <summary>
        /// 选择改变
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void GridViewZiDianMingChen_SelectedIndexChanged(object sender, EventArgs e)
        {
            // 字典编号
            String ziDianBianHao = this.GridViewZiDianMingChen.Rows[this.GridViewZiDianMingChen.SelectedRow.RowIndex].Cells[2].Text.ToString().Trim();
            // 初始化默认Gridview的SQL语句

            String querySql = "SELECT 序号,名称,SN FROM xitongzidian WHERE  ID='" + ziDianBianHao + "'";

            fillGridView(querySql);

        }

        /// <summary>
        /// 编辑
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void GridViewZiDianMingChen_RowEditing(object sender, GridViewEditEventArgs e)
        {
            GridViewZiDianMingChen.EditIndex = e.NewEditIndex;
            String querySql = "select distinct 字典名称,字典编号,zidianmingcheng.SN from zidianmingcheng,xitongzidian where 模块类别= " + "'" + this.LabelLeiBei.Text + "' AND 可否编辑='是' ";
            ziDianMingChenGrid(querySql);
        }

        /// <summary>
        /// 取消
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void GridViewZiDianMingChen_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
        {
            GridViewZiDianMingChen.EditIndex = -1;
            String querySql = "select distinct 字典名称,字典编号,zidianmingcheng.SN from zidianmingcheng,xitongzidian where 模块类别= " + "'" + this.LabelLeiBei.Text + "' AND 可否编辑='是' ";
            ziDianMingChenGrid(querySql);
        }

        /// <summary>
        /// 更新
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void GridViewZiDianMingChen_RowUpdating(object sender, GridViewUpdateEventArgs e)
        {
            string sn = GridViewZiDianMingChen.DataKeys[e.RowIndex].Values[0].ToString().Trim();
            String delXinWenSql = "UPDATE zidianmingcheng SET 字典名称 = '" + ((TextBox)(GridViewZiDianMingChen.Rows[e.RowIndex].Cells[1].Controls[0])).Text.ToString().Trim() + "' WHERE SN = '" + sn + "'";

            OracleConnection conn = new OracleConnection(OracleHelper.DatabaseConnStr);
            conn.Open();
            OracleTransaction trans = conn.BeginTransaction(IsolationLevel.ReadCommitted);

            try
            {
                OracleHelper.ExecuteNonQuery(trans, CommandType.Text, delXinWenSql, null);
                trans.Commit();
            }
            catch (Exception ex)
            {
                trans.Rollback();
                ex.ToString();
            }
            finally
            {
                conn.Close();
            }

            GridViewZiDianMingChen.EditIndex = -1;

            String querySql = "select distinct 字典名称,字典编号,zidianmingcheng.SN from zidianmingcheng,xitongzidian where 模块类别= " + "'" + this.LabelLeiBei.Text + "' AND 可否编辑='是' ";
            ziDianMingChenGrid(querySql);
        }

        /// <summary>
        /// 选择改变
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void GridViewZiDianMingChen_SelectedIndexChanged1(object sender, EventArgs e)
        {
            String ziDianBianHao = this.GridViewZiDianMingChen.Rows[this.GridViewZiDianMingChen.SelectedRow.RowIndex].Cells[2].Text.ToString().Trim();
            // 初始化默认Gridview的SQL语句

            String querySql = "SELECT 序号,名称,SN FROM xitongzidian WHERE  ID='" + ziDianBianHao + "'";

            fillGridView(querySql);

            ButtonTianJia.Visible = true;
            ButtonTianJia.Enabled = true;
        }

        /// <summary>
        /// 字典更新
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void GridViewXinXiLan_RowUpdating(object sender, GridViewUpdateEventArgs e)
        {
            string sn = GridViewXinXiLan.DataKeys[e.RowIndex].Values[0].ToString().Trim();
            String updateSql = "UPDATE xitongzidian SET 序号='" + ((TextBox)(GridViewXinXiLan.Rows[e.RowIndex].Cells[0].Controls[0])).Text.ToString().Trim()
                                   + "', 名称 = '" + ((TextBox)(GridViewXinXiLan.Rows[e.RowIndex].Cells[1].Controls[0])).Text.ToString().Trim()
                                   + "' WHERE SN = '" + sn + "'";

            OracleConnection conn = new OracleConnection(OracleHelper.DatabaseConnStr);
            conn.Open();
            OracleTransaction trans = conn.BeginTransaction(IsolationLevel.ReadCommitted);

            try
            {
                OracleHelper.ExecuteNonQuery(trans, CommandType.Text, updateSql, null);
                trans.Commit();
            }
            catch (Exception ex)
            {
                trans.Rollback();
                ex.ToString();
            }
            finally
            {
                conn.Close();
            }

            GridViewXinXiLan.EditIndex = -1;
            String ziDianBianHao = this.GridViewZiDianMingChen.Rows[this.GridViewZiDianMingChen.SelectedRow.RowIndex].Cells[2].Text.ToString().Trim();
            String querySql = "SELECT 序号,名称,SN FROM xitongzidian WHERE ID='" + ziDianBianHao + "'";
            fillGridView(querySql);
        }

        /// <summary>
        /// 删除字典项
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void GridViewXinXiLan_RowDeleting(object sender, GridViewDeleteEventArgs e)
        {
            String sn = GridViewXinXiLan.DataKeys[e.RowIndex].Values[0].ToString().Trim();

            String delSql = "DELETE FROM xitongzidian WHERE SN = '" + sn + "'";

            OracleConnection conn = new OracleConnection(OracleHelper.DatabaseConnStr);
            conn.Open();
            OracleTransaction trans = conn.BeginTransaction(IsolationLevel.ReadCommitted);

            try
            {
                OracleHelper.ExecuteNonQuery(trans, CommandType.Text, delSql, null);
                trans.Commit();
            }
            catch (Exception ex)
            {
                trans.Rollback();
                ex.ToString();
            }
            finally
            {
                conn.Close();
            }

            GridViewXinXiLan.EditIndex = -1;
            String ziDianBianHao = this.GridViewZiDianMingChen.Rows[this.GridViewZiDianMingChen.SelectedRow.RowIndex].Cells[2].Text.ToString().Trim();
            String querySql = "SELECT 序号,名称,SN FROM xitongzidian WHERE ID='" + ziDianBianHao + "'";
            fillGridView(querySql);
        }

        /// <summary>
        /// 编辑
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void GridViewXinXiLan_RowEditing(object sender, GridViewEditEventArgs e)
        {
            GridViewXinXiLan.EditIndex = e.NewEditIndex;
            String ziDianBianHao = this.GridViewZiDianMingChen.Rows[this.GridViewZiDianMingChen.SelectedRow.RowIndex].Cells[2].Text.ToString().Trim();
            String querySql = "SELECT 序号,名称,SN FROM xitongzidian WHERE ID='" + ziDianBianHao + "'";
            fillGridView(querySql);
        }

        /// <summary>
        /// 取消
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void GridViewXinXiLan_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
        {
            GridViewXinXiLan.EditIndex = -1;
            String ziDianBianHao = this.GridViewZiDianMingChen.Rows[this.GridViewZiDianMingChen.SelectedRow.RowIndex].Cells[2].Text.ToString().Trim();
            String querySql = "SELECT 序号,名称,SN FROM xitongzidian WHERE ID='" + ziDianBianHao + "'";
            fillGridView(querySql);
        }

        /// <summary>
        /// 新增
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void ButtonTianJia_Click(object sender, EventArgs e)
        {
            TextBoxXuHao.Text = "0";
            TextBoxXuHao.Visible = true;
            TextBoxMingCheng.Text = "请输入";
            TextBoxMingCheng.Visible = true;
            ButtonBaoCun.Enabled = true;
            ButtonBaoCun.Visible = true;
            ButtonCancel.Enabled = true;
            ButtonCancel.Visible = true;
            ButtonTianJia.Enabled = false;
            ButtonTianJia.Visible = false;
        }

        /// <summary>
        /// 保存
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void ButtonBaoCun_Click(object sender, EventArgs e)
        {


            String insertSql = "INSERT INTO xitongzidian(序号,名称,ID,SN) VALUES(:xh,:mc,:id,:sn) ";
            OracleParameter[] parms = {
                    new OracleParameter(":xh", OracleType.Number, 8),
                    new OracleParameter(":mc", OracleType.Char, 30),
                    new OracleParameter(":id", OracleType.Char, 10),
                    new OracleParameter(":sn", OracleType.Char, 32)
                    };

            parms[0].Value = TextBoxXuHao.Text.Trim();
            parms[1].Value = TextBoxMingCheng.Text.Trim();
            parms[2].Value = this.GridViewZiDianMingChen.Rows[this.GridViewZiDianMingChen.SelectedRow.RowIndex].Cells[2].Text.ToString().Trim();
            parms[3].Value = System.Guid.NewGuid().ToString().Replace("-", "");

            OracleConnection conn = new OracleConnection(OracleHelper.DatabaseConnStr);
            conn.Open();
            OracleTransaction trans = conn.BeginTransaction(IsolationLevel.ReadCommitted);

            try
            {
                OracleHelper.ExecuteNonQuery(trans, CommandType.Text, insertSql, parms);
                trans.Commit();
            }
            catch (Exception ex)
            {
                trans.Rollback();
                ex.ToString();
            }
            finally
            {
                conn.Close();
            }
            String ziDianBianHao = this.GridViewZiDianMingChen.Rows[this.GridViewZiDianMingChen.SelectedRow.RowIndex].Cells[2].Text.ToString().Trim();
            String querySql = "SELECT 序号,名称,SN FROM xitongzidian WHERE ID='" + ziDianBianHao + "'";
            fillGridView(querySql);

            TextBoxXuHao.Text = "0";
            TextBoxXuHao.Visible = false;
            TextBoxMingCheng.Text = "请输入";
            TextBoxMingCheng.Visible = false;

            ButtonBaoCun.Enabled = false;
            ButtonBaoCun.Visible = false;
            ButtonCancel.Enabled = false;
            ButtonCancel.Visible = false;
            ButtonTianJia.Enabled = true;
            ButtonTianJia.Visible = true;
        }

        /// <summary>
        /// 取消
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void ButtonCancel_Click(object sender, EventArgs e)
        {
            TextBoxXuHao.Text = "0";
            TextBoxXuHao.Visible = false;
            TextBoxMingCheng.Text = "请输入";
            TextBoxMingCheng.Visible = false;

            ButtonBaoCun.Enabled = false;
            ButtonBaoCun.Visible = false;
            ButtonCancel.Enabled = false;
            ButtonCancel.Visible = false;
            ButtonTianJia.Enabled = true;
            ButtonTianJia.Visible = true;
        }

        /// <summary>
        /// 实现删除弹出对话框
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void GridViewXinXiLan_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            //如果是绑定数据行
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                if (e.Row.RowState == DataControlRowState.Normal || e.Row.RowState == DataControlRowState.Alternate)
                {
                    ((LinkButton)e.Row.Cells[4].Controls[0]).Attributes.Add("onclick", "javascript:return confirm('你确认要删除:\"" + e.Row.Cells[1].Text.Trim() + "\"吗?')");
                }
            }

        }
    }

    6 gridview移动框

    <div style="overflow: scroll; height: 300px">

     <asp:GridView ID="GridViewZiDianMingChen" runat="server" AutoGenerateColumns="False"
                CellPadding="4" ForeColor="#333333" PageSize="1" EmptyDataText=" " OnRowCancelingEdit="GridViewZiDianMingChen_RowCancelingEdit" OnRowEditing="GridViewZiDianMingChen_RowEditing" OnRowUpdating="GridViewZiDianMingChen_RowUpdating" DataKeyNames="SN" OnSelectedIndexChanged="GridViewZiDianMingChen_SelectedIndexChanged1" Height="5px">
                .........
    </asp:GridView>
    </div>

    效果图:(其中的GirdLines设置为Both)好象好看点.


    7 空数据时显示表头

             <EmptyDataTemplate>
                 序号 名称
             </EmptyDataTemplate>

    8 添加一行空行

            DataTable dt = new DataTable();
            DataRow row = dt.NewRow();
            dt.Columns.Add("建立日期", typeof(string));
            dt.Columns.Add("姓名", typeof(string));
            dt.Columns.Add("类型", typeof(string));
            dt.Columns.Add("名称", typeof(string));
            dt.Columns.Add("开始时间", typeof(string));
            dt.Columns.Add("结束时间", typeof(string));
            dt.Columns.Add("取得证书", typeof(string));
            dt.Columns.Add("备注", typeof(string));
            dt.Columns.Add("经办人", typeof(string));
            dt.Columns.Add("SN", typeof(string));
            row[0] = "2006-6-18";
            row[1] = "张三";
            row[2] = "培训";
            row[3] = "干部培训";
            row[4] = "2006-6-18";
            row[5] = "2006-6-18";
            row[6] = "资格证书";
            row[7] = "无";
            row[8] = "王二";
            row[9] = "234234234";
            dt.Rows.Add(row);
     
            // 清空以前的数据源
            GridViewTianJia.DataSource = null;

            // 将ds作为信息栏GridView的数据源
            GridViewTianJia.DataSource = dt;

            // 绑定数据
            GridViewTianJia.DataBind();

    本来有个更好的,不知道怎么写了现在 郁闷!

    9 隐藏一列

          GridViewTianJia.Columns[10].Visible = false;

    10 隐藏单元
          GridViewTianJia.Rows[0].Cells[10].Visible = false;

    11 与dropdownlist的结合

    .aspx

                                <asp:TemplateField HeaderText="类型">
                                    
    <EditItemTemplate>
                                        
    <asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("类型") %>'></asp:TextBox>
                                    
    </EditItemTemplate>
                                    
    <ItemStyle Wrap="False" />
                                    
    <ItemTemplate>
                                        
    <asp:HiddenField ID="HDLeiXing" runat="server" Value='<%# Eval("类型") %>' />
                                        
    <asp:DropDownList ID="DropDownListLeiXing" runat="server">
                                        
    </asp:DropDownList>
                                    
    </ItemTemplate>
                                
    </asp:TemplateField>

    .cs

        /// <summary>
        
    /// 数据绑定
        
    /// </summary>
        
    /// <param name="sender"></param>
        
    /// <param name="e"></param>

        protected void GridViewTianJia_RowDataBound(object sender, GridViewRowEventArgs e)
        
    {
            
    //为DropDownList绑定值
            if (((DropDownList)e.Row.FindControl("DropDownListLeiXing")) != null)
            
    {
                DropDownList ddlXL 
    = (DropDownList)e.Row.FindControl("DropDownListLeiXing");
                
    //ddlXL.Items.Clear();
                
    //ddlXL.Items.Add("培训");
                
    //ddlXL.Items.Add("进修");
                
    // 奖惩类型
                String conn = OracleHelper.DatabaseConnStr;
                ddlXL.Items.Clear();
                String queryLeiXing 
    = "SELECT 名称 FROM XITONGZIDIAN WHERE ID='03010301' ORDER BY 序号";
                OracleDataReader drLeiXing 
    = OracleHelper.ExecuteReader(conn, CommandType.Text, queryLeiXing, null);
                
    while (drLeiXing.Read())
                
    {
                    ddlXL.Items.Add(drLeiXing.GetString(
    0).Trim());
                }

                drLeiXing.Close();

                
    //ddlXL.SelectedValue = ((HiddenField)e.Row.FindControl("HDLeiXing")).Value.ToString().Trim();
                ddlXL.Items.Remove(((HiddenField)e.Row.FindControl("HDLeiXing")).Value.ToString().Trim());
                ddlXL.Items.Insert(
    0, ((HiddenField)e.Row.FindControl("HDLeiXing")).Value.ToString().Trim());
            }

        }

    运行显示:

    12

     <asp:TemplateField HeaderText="编辑" ShowHeader="False">
                                    
    <EditItemTemplate>
                                        
    <asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="True" CommandName="Update"
                                            Text
    ="更新"></asp:LinkButton>
                                        
    <asp:LinkButton ID="LinkButton2" runat="server" CausesValidation="False" CommandName="Cancel"
                                            Text
    ="取消"></asp:LinkButton>
                                    
    </EditItemTemplate>
                                    
    <ItemStyle Wrap="False" />
                                    
    <ItemTemplate>
                                        
    <asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="False" CommandName="Edit"
                                            Text
    ="编辑"></asp:LinkButton>&nbsp;
                                    
    </ItemTemplate>
                                
    </asp:TemplateField>
                                
    <asp:TemplateField HeaderText="操作" ShowHeader="False">
                                    
    <ItemStyle Wrap="False" />
                                    
    <ItemTemplate>
                                        
    <asp:LinkButton ID="LinkButton3" runat="server" CausesValidation="False" CommandName="Delete"
                                            Text
    ="删除"></asp:LinkButton>
                                        
    <asp:LinkButton ID="LinkButtonTianJia" runat="server" Visible="False" OnClick="LinkButtonTianJia_Click">添加保存</asp:LinkButton>
                                        
    <asp:LinkButton ID="LinkButtonQuXiao" runat="server" OnClick="LinkButtonQuXiao_Click"
                                            Visible
    ="False">取消</asp:LinkButton>
                                    
    </ItemTemplate>
                                
    </asp:TemplateField>

                                    <EditItemTemplate>
                                        <asp:TextBox ID="TextBoxKaiShiShiJian" runat="server" Text='<%# Bind("开始时间") %>' Width="70" CausesValidation="True" ValidationGroup="vgpKaiShiShiJian"></asp:TextBox>
                                        <asp:RequiredFieldValidator ID="reqFromDate" runat="server" ControlToValidate="TextBoxKaiShiShiJian" ErrorMessage="请输入开始时间" ValidationGroup="vgpKaiShiShiJian" Display="Dynamic"  />
                                        <asp:CustomValidator ID="CVKaiShiShiJian" runat="server" ErrorMessage="日期格式错误()" ControlToValidate="TextBoxKaiShiShiJian" Display="Dynamic" OnServerValidate="CVKaiShiShiJian_ServerValidate"></asp:CustomValidator>
                                    </EditItemTemplate>
     


        /// <summary>
        /// 时间格式验证
        /// </summary>
        /// <param name="source"></param>
        /// <param name="args"></param>
        protected void CVKaiShiShiJian_ServerValidate(object source, ServerValidateEventArgs args)
        {
            try
            {
                int num = Int32.Parse(args.Value);
                if (num % 2 == 0)
                {
                    args.IsValid = true;
                    return;
                }
            }
            catch (Exception) { }
            args.IsValid = false;
        }

            if (Page.IsValid)
            {
                ////

            }

     
     

    Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1767322

  • 相关阅读:
    001-Java®语言规范、Java平台标准版文档、JVM概述
    004-RIP、OSPF【路由选择协议】
    003-ARP地址解析协议
    0405-服务注册与发现-客户端负载均衡-Ribbon 同Eureka使用,Ribbon脱离Eureka使用
    0404-服务注册与发现-客户端负载均衡-两种自定义方式-Ribbon通过代码自定义配置、使用配置文件自定义Ribbon Client
    网页嵌入swf代码
    解决html5 video不能播放 能播放声音不能播放视频
    代码高亮插件SyntaxHighlighter
    透明度
    web图片轮播实现
  • 原文地址:https://www.cnblogs.com/yuanbao/p/1044130.html
Copyright © 2020-2023  润新知