`

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="../../css/style.css" _fcksavedurl=""../../css/style.css"" _fcksavedurl=""../../css/style.css"" _fcksavedurl=""../../css/style.css"" _fcksavedurl=""../../css/style.css"" _fcksavedurl=""../../css/style.css"" _fcksavedurl=""../../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="../../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="../../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:TemplateFieldHeaderText="类型">
<EditItemTemplate>
<asp:TextBoxID="TextBox1"runat="server"Text='<%#Bind("类型")%>'></asp:TextBox>
</EditItemTemplate>
<ItemStyleWrap="False"/>
<ItemTemplate>
<asp:HiddenFieldID="HDLeiXing"runat="server"Value='<%#Eval("类型")%>'/>
<asp:DropDownListID="DropDownListLeiXing"runat="server">
</asp:DropDownList>
</ItemTemplate>
</asp:TemplateField>

.cs

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

protectedvoidGridViewTianJia_RowDataBound(objectsender,GridViewRowEventArgse)
...{
//为DropDownList绑定值
if(((DropDownList)e.Row.FindControl("DropDownListLeiXing"))!=null)
...{
DropDownListddlXL
=(DropDownList)e.Row.FindControl("DropDownListLeiXing");
//ddlXL.Items.Clear();
//ddlXL.Items.Add("培训");
//ddlXL.Items.Add("进修");
//奖惩类型
Stringconn=OracleHelper.DatabaseConnStr;
ddlXL.Items.Clear();
StringqueryLeiXing
="SELECT名称FROMXITONGZIDIANWHEREID='03010301'ORDERBY序号";
OracleDataReaderdrLeiXing
=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:TemplateFieldHeaderText="编辑"ShowHeader="False">
<EditItemTemplate>
<asp:LinkButtonID="LinkButton1"runat="server"CausesValidation="True"CommandName="Update"
Text
="更新"></asp:LinkButton>
<asp:LinkButtonID="LinkButton2"runat="server"CausesValidation="False"CommandName="Cancel"
Text
="取消"></asp:LinkButton>
</EditItemTemplate>
<ItemStyleWrap="False"/>
<ItemTemplate>
<asp:LinkButtonID="LinkButton1"runat="server"CausesValidation="False"CommandName="Edit"
Text
="编辑"></asp:LinkButton>&nbsp;
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateFieldHeaderText="操作"ShowHeader="False">
<ItemStyleWrap="False"/>
<ItemTemplate>
<asp:LinkButtonID="LinkButton3"runat="server"CausesValidation="False"CommandName="Delete"
Text
="删除"></asp:LinkButton>
<asp:LinkButtonID="LinkButtonTianJia"runat="server"Visible="False"OnClick="LinkButtonTianJia_Click">添加保存</asp:LinkButton>
<asp:LinkButtonID="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)
{
////

}


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics