62,046
社区成员
发帖
与我相关
我的任务
分享
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="VSG.Web._Default" %>
<!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>.
<style type="text/css">
body
{
font-size: 12px;
text-align: center;
}
.TextBox
{
border-right: #ffffff 0px solid;
border-top: #ffffff 0px solid;
font-size: 9pt;
border-left: #ffffff 0px solid;
border-bottom: #c0c0c0 1px solid;
background-color: #ffffff;
}
table.gridview_m
{
border-collapse: collapse;
border: solid 1px #93c2f1;
width: 98%;
font-size: 10pt;
}
table.gridview_m td, th
{
border-collapse: collapse;
border: solid 1px #ffffff;
font-size: 10pt;
}
table.gridview_m1
{
border-collapse: collapse;
border: solid 1px #93c2f1;
width: 98%;
font-size: 10pt;
}
table.gridview_m1 td1, th1
{
border-collapse: collapse;
border: solid 1px #93c2f1;
font-size: 10pt;
}
</style>
</head>
<body>
<form id="form1" runat="server">
<div style="text-align: center">
<asp:GridView ID="Gv1" runat="server" AutoGenerateColumns="False" Height="1px" OnRowDeleting="Gv1_RowDeleting"
CssClass="gridview_m1">
<RowStyle HorizontalAlign="Center" VerticalAlign="Middle" />
<Columns>
<asp:TemplateField HeaderText="编号">
<ItemTemplate>
<%# Container.DataItemIndex+1 %>
<asp:Label ID="Lb_Index" runat="server" Text='<%# Container.DataItemIndex+1 %>' Visible="false"></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="现任职务">
<ItemTemplate>
<asp:TextBox ID="Txt_Cposition" runat="server" Text='<%#Eval("Cposition")%>'
CssClass="TextBox"></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="姓名">
<ItemTemplate>
<asp:TextBox ID="Txt_UserName" runat="server" Text='<%#Eval("UserName")%>' CssClass="TextBox"></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="一月份">
<ItemTemplate>
<asp:TextBox ID="Txt_Jan" runat="server" Text='<%#Eval("JanCount")%>' CssClass="TextBox"></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="二月份">
<ItemTemplate>
<asp:TextBox ID="Txt_Feb" runat="server" Text='<%#Eval("FebCount")%>' CssClass="TextBox"></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="删除">
<ItemTemplate>
<asp:LinkButton ID="Lkb_delete" runat="server" CommandName="delete" Text="删除" CommandArgument='<%# Container.DataItemIndex+1 %>'></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<p>
</p>
<p>
职务:<asp:TextBox ID="txt_Cp" runat="server" CssClass="TextBox"></asp:TextBox></p>
<p>
姓名:<asp:TextBox ID="txt_Un" runat="server" CssClass="TextBox"></asp:TextBox></p>
<p>
一月:<asp:TextBox ID="txt_Jn" runat="server" CssClass="TextBox"></asp:TextBox></p>
<p>
二月:<asp:TextBox ID="txt_Fb" runat="server" CssClass="TextBox"></asp:TextBox></p>
<p>
<asp:Button ID="Btn_Add" runat="server" OnClick="Btn_Add_Click" Text="添加" />
</p>
</div>
</form>
</body>
</html>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Collections;
namespace VSG.Web
{
public partial class _Default : System.Web.UI.Page
{
Hashtable ht = new Hashtable();//记录ID和索引
DataTable Data = new DataTable();
protected void Page_Load(object sender, EventArgs e)
{
if (ViewState["Data"] != null)
{
GridViewBind(this.Gv1, ViewState["Data"] as DataTable);
}
else
{
Data.Columns.Add("Cposition");
Data.Columns.Add("UserName");
Data.Columns.Add("JanCount");
Data.Columns.Add("FebCount");
Data.Rows.Add(new object[] { "卑鄙副总工程师", "张1", "98", "94" });
Data.Rows.Add(new object[] { "矿建副总工程师", "张2", "99", "94" });
Data.Rows.Add(new object[] { "机电副总工程师", "张3", "95", "93" });
Data.Rows.Add(new object[] { "基建副总工程师", "张4", "93", "91" });
GridViewBind(this.Gv1, Data);
ViewState["Data"] = Data;
}
Data = ViewState["Data"] as DataTable;
if (Data.Rows.Count > 0)
{
for (int i = 0; i < Data.Rows.Count; i++)
{
//这里应该存一个唯一键 来记录索引
//添加这个索引是为了后面删除和更新很方便的找到
ht.Add(i + 1, i);
}
}
}
protected void Gv1_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
//如果不为空就取出来
if (ViewState["Data"] != null)
{
Data = ViewState["Data"] as DataTable;
}
//取当前行ID
int id = Convert.ToInt32((this.Gv1.Rows[e.RowIndex].FindControl("Lkb_delete") as LinkButton).CommandArgument);
//匹配索引
int index = Convert.ToInt32(ht[id]);
//移除行
this.Data.Rows.RemoveAt(index);
//绑定数据
GridViewBind(this.Gv1, Data);
//保存数据
ViewState["Data"] = Data;
}
protected void Btn_Add_Click(object sender, EventArgs e)
{
//先取出ViewState["Data"]是否为空.
if (ViewState["Data"] != null)
{
Data = ViewState["Data"] as DataTable;
}
else
{
Data = CreateTable(0);
}
Data.Rows.Add(new object[] { this.txt_Cp.Text, this.txt_Un.Text, this.txt_Jn.Text, this.txt_Fb.Text });//添加行
GridViewBind(this.Gv1, Data);//绑定
//同时加入ViewState["Data"]
ViewState["Data"] = Data;
}
/// <summary>
/// 空行数
/// </summary>
/// <param name="Count"></param>
/// <returns></returns>
private DataTable CreateTable(int Count)
{
DataTable Data = new DataTable();
Data.Columns.Add("Cposition");
Data.Columns.Add("UserName");
Data.Columns.Add("JanCount");
Data.Columns.Add("FebCount");
if (Count > 0)
{
for (int i = 0; i < Count; i++)
{
Data.Rows.Add(new object[] { "", "", "", "" });
}
}
return Data;
}
private void GridViewBind(GridView GV, DataTable dt)
{
if (dt.Rows.Count != 0)
{
GV.DataSource = dt;
}
else
{
GV.DataSource = null;
GV.EmptyDataText = "没有可以显示的数据";
}
GV.DataBind();
}
}
}