zoukankan
html css js c++ java
新增及删除Grid行
示例效果如下
点击 新增 按钮 Grid将增加一空行 用于输入
点击 删除 按钮 将删除该行记录并重新绑定Grid
相关代码如下
HTML部分
<%
@ Page Language
=
"
C#
"
AutoEventWireup
=
"
true
"
CodeFile
=
"
Default.aspx.cs
"
Inherits
=
"
PrivateWork_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
>
Grid 新增及删除一行
</
title
>
</
head
>
<
body
>
<
form
id
="form1"
runat
="server"
>
<
asp:GridView
ID
="GridView1"
runat
="server"
AutoGenerateColumns
="False"
>
<
Columns
>
<
asp:TemplateField
HeaderText
="pID"
>
<
ItemTemplate
>
<
asp:TextBox
ID
="txt_pID"
runat
="server"
Width
="98"
Text
='<%#
Bind("pID") %
>
'>
</
asp:TextBox
>
</
ItemTemplate
>
<
HeaderStyle
HorizontalAlign
="Center"
/>
</
asp:TemplateField
>
<
asp:TemplateField
HeaderText
="pName"
>
<
ItemTemplate
>
<
asp:TextBox
ID
="txt_pName"
runat
="server"
Width
="98"
Text
='<%#
Bind("pName") %
>
' >
</
asp:TextBox
>
</
ItemTemplate
>
<
HeaderStyle
HorizontalAlign
="Center"
/>
</
asp:TemplateField
>
<
asp:TemplateField
>
<
HeaderTemplate
>
<
asp:Button
ID
="btn_NewAdd"
runat
="server"
Text
="新增"
OnClick
="btn_NewAdd_Click"
/>
</
HeaderTemplate
>
<
ItemTemplate
>
<
asp:Button
ID
="btn_Delete"
runat
="server"
Text
="删除"
CommandArgument
="<%# GridView1.Rows.Count %>"
OnClick
="btn_Delete_Click"
/>
</
ItemTemplate
>
</
asp:TemplateField
>
</
Columns
>
</
asp:GridView
>
<
asp:Button
ID
="btn_SaveAndShow"
runat
="server"
Text
="保存并显示数据在GridView2"
OnClick
="btn_SaveAndShow_Click"
/><
br
/>
<
asp:GridView
ID
="GridView2"
runat
="server"
Width
="200"
>
</
asp:GridView
>
</
form
>
</
body
>
</
html
>
后台部分
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;
public
partial
class
PrivateWork_Default : System.Web.UI.Page
{
Page_Load 构造DataTable
#region
Page_Load 构造DataTable
protected
void
Page_Load(
object
sender, EventArgs e)
{
if
(
!
IsPostBack)
{
//
DataTable dt
=
new
DataTable();
dt.Columns.Add(
"
pID
"
,
typeof
(
string
));
dt.Columns.Add(
"
pName
"
,
typeof
(
string
));
DataRow dr
=
dt.NewRow();
dr[
"
pID
"
]
=
""
;
dr[
"
pName
"
]
=
""
;
dt.Rows.Add(dr);
ViewState.Add(
"
mydt
"
, dt);
//
this
.GridView1.DataSource
=
dt;
this
.GridView1.DataBind();
}
}
#endregion
Grid 新增一行
#region
Grid 新增一行
protected
void
btn_NewAdd_Click(
object
sender, EventArgs e)
{
DataTable dt
=
(DataTable)ViewState[
"
mydt
"
];
dt.Rows.Clear();
//
保存页面输入
for
(
int
i
=
0
; i
<
this
.GridView1.Rows.Count; i
++
)
{
string
str_pID
=
((TextBox)
this
.GridView1.Rows[i].FindControl(
"
txt_pID
"
)).Text.Trim();
string
str_pName
=
((TextBox)
this
.GridView1.Rows[i].FindControl(
"
txt_pName
"
)).Text.Trim();
//
DataRow dr
=
dt.NewRow();
dr[
"
pID
"
]
=
str_pID;
dr[
"
pName
"
]
=
str_pName;
dt.Rows.Add(dr);
}
//
新增空行
DataRow drEmpty
=
dt.NewRow();
drEmpty[
"
pID
"
]
=
""
;
drEmpty[
"
pName
"
]
=
""
;
dt.Rows.Add(drEmpty);
//
ViewState[
"
mydt
"
]
=
dt;
//
this
.GridView1.DataSource
=
dt;
this
.GridView1.DataBind();
}
#endregion
Grid 删除一行
#region
Grid 删除一行
protected
void
btn_Delete_Click(
object
sender, EventArgs e)
{
//
删除指定行
int
intIndex
=
Convert.ToInt32(((Button)sender).CommandArgument);
DataTable dt
=
(DataTable)ViewState[
"
mydt
"
];
dt.Rows.RemoveAt(intIndex);
//
确保至少有一空行 以使GridView1能显示
if
(dt.Rows.Count
==
0
)
{
DataRow drEmpty
=
dt.NewRow();
drEmpty[
"
pID
"
]
=
""
;
drEmpty[
"
pName
"
]
=
""
;
dt.Rows.Add(drEmpty);
}
//
ViewState[
"
mydt
"
]
=
dt;
//
this
.GridView1.DataSource
=
dt;
this
.GridView1.DataBind();
}
#endregion
保存并显示 按钮
#region
保存并显示 按钮
protected
void
btn_SaveAndShow_Click(
object
sender, EventArgs e)
{
DataTable dt
=
(DataTable)ViewState[
"
mydt
"
];
dt.Rows.Clear();
//
for
(
int
i
=
0
; i
<
this
.GridView1.Rows.Count; i
++
)
{
string
str_pID
=
((TextBox)
this
.GridView1.Rows[i].FindControl(
"
txt_pID
"
)).Text.Trim();
string
str_pName
=
((TextBox)
this
.GridView1.Rows[i].FindControl(
"
txt_pName
"
)).Text.Trim();
//
DataRow dr
=
dt.NewRow();
dr[
"
pID
"
]
=
str_pID;
dr[
"
pName
"
]
=
str_pName;
dt.Rows.Add(dr);
}
ViewState[
"
mydt
"
]
=
dt;
//
this
.GridView2.DataSource
=
dt;
this
.GridView2.DataBind();
}
#endregion
}
查看全文
相关阅读:
BZOJ4416 [Shoi2013]阶乘字符串 【序列自动机 + 状压dp】
BZOJ2159 Crash 的文明世界 【第二类斯特林数 + 树形dp】
快速求原根
BZOJ2530 [Poi2011]Party 【贪心】
BZOJ2213 [Poi2011]Difference 【乱搞】
BZOJ2276 [Poi2011]Temperature 【单调队列】
多项式除法
loj2538 「PKUWC2018」Slay the Spire 【dp】
loj2537 「PKUWC2018」Minimax 【概率 + 线段树合并】
Java多线程之线程的暂停
原文地址:https://www.cnblogs.com/freeliver54/p/919835.html
最新文章
JS定时器
为自己的博客园添加目录锚点和返回顶部
8.函数的拓展
除自身以外数组的乘积
二叉树的最近公共祖先
二叉搜索树的最近公共祖先
2的幂
信号驱动式I/O
二叉搜索树中第K小的元素
[CSP-S模拟测试]:取石子(博弈论+DP)
热门文章
[CSP-S模拟测试]:异或(数学)
[CSP-S模拟测试]:括号密码(贪心)
[CSP-S模拟测试]:电压机制(图论+树上差分)
[CSP-S模拟测试]:表达式密码(模拟)
留言板
[CSP-S模拟测试]:Walker(数学)
[CSP-S模拟测试]:Six(数学)
[CSP-S模拟测试]:Smooth(数学)
[CSP-S模拟测试]:旅行计划(分块+DP)
loj Snakes 的 Naïve Graph 【数论】
Copyright © 2011-2022 走看看