GridView 编辑、删除 、分页
类似代码都差不多,记录一下,便于以后查看使用。
前台页面:
<asp:GridView ID="gdvList" runat="server" AutoGenerateColumns="False" CssClass="table table-striped table-bordered table-hover"
AllowPaging="true" PageSize="10" OnRowDeleting="gdvList_RowDeleting" OnRowCancelingEdit="gdvList_RowCancelingEdit"
OnRowEditing="gdvList_RowEditing" OnRowUpdating="gdvList_RowUpdating" OnRowDataBound="gdvList_RowDataBound"
DataKeyNames="ID" onpageindexchanging="gdvList_PageIndexChanging"
onrowcommand="gdvList_RowCommand">
<Columns>
<asp:BoundField HeaderText="ID" DataField="ID">
<FooterStyle CssClass="hidden" />
<HeaderStyle CssClass="hidden" />
<ItemStyle CssClass="hidden" />
</asp:BoundField>
<asp:TemplateField HeaderText="部门" ItemStyle-HorizontalAlign="Center">
<EditItemTemplate>
<asp:Label ID="lblDeptName" runat="server" Text='<%#Eval("deptname")%>' Width="90%"></asp:Label>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="lblDeptName1" runat="server" Text='<%#Eval("deptname")%>' Width="90%"></asp:Label>
</ItemTemplate>
<ItemStyle HorizontalAlign="Center" />
<HeaderStyle Width="150px" />
</asp:TemplateField>
<asp:TemplateField HeaderText="工号" ItemStyle-HorizontalAlign="Center">
<EditItemTemplate>
<asp:Label ID="lblUserNo" runat="server" Text='<%#Eval("userNo")%>' Width="90%"></asp:Label>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="lblUserNo1" runat="server" Text='<%#Eval("userNo")%>' Width="90%"></asp:Label>
</ItemTemplate>
<HeaderStyle Width="150px" />
<ItemStyle HorizontalAlign="Center" />
</asp:TemplateField>
<asp:TemplateField HeaderText="邮箱号" ItemStyle-HorizontalAlign="Center">
<EditItemTemplate>
<asp:Label ID="lblEmail" runat="server" Text='<%#Eval("email")%>' Width="90%"></asp:Label>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="lblEmail1" runat="server" Text='<%#Eval("email")%>' Width="90%"></asp:Label>
</ItemTemplate>
<HeaderStyle Width="150px" />
<ItemStyle HorizontalAlign="Center" />
</asp:TemplateField>
<asp:TemplateField HeaderText="姓名" ItemStyle-HorizontalAlign="Center">
<EditItemTemplate>
<asp:Label ID="lblUserName" runat="server" Text='<%#Eval("userName")%>' Width="90%"></asp:Label>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="lblUserName1" runat="server" Text='<%#Eval("userName")%>' Width="90%"></asp:Label>
</ItemTemplate>
<HeaderStyle Width="150px" />
<ItemStyle HorizontalAlign="Center" />
</asp:TemplateField>
<asp:TemplateField HeaderText="指标" ItemStyle-HorizontalAlign="Center">
<EditItemTemplate>
<asp:TextBox ID="txtTarget" runat="server" Text='<%#Eval("target")%>' Width="90%" />
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="lblTarget" runat="server" Text='<%#Eval("target")%>' Width="90%" />
</ItemTemplate>
<HeaderStyle Width="150px" />
<ItemStyle HorizontalAlign="Center" />
</asp:TemplateField>
<asp:TemplateField HeaderText="管理" ItemStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:LinkButton ID="btnEdit" runat="server" Text="编辑" CommandName="Edit"></asp:LinkButton>
<asp:ImageButton ID="lbtnDel" runat="server" OnClientClick="return window.confirm('确认删除?');"
ImageUrl="../Images/action_delete.png" CommandName="Delete" />
</ItemTemplate>
<EditItemTemplate>
<asp:LinkButton ID="btnUpdate" runat="server" Text="保存" CommandName="Update" CommandArgument='<%#Eval("ID") %>'></asp:LinkButton>
<asp:LinkButton ID="btnCancle" runat="server" Text="取消" CommandName="Cancel"></asp:LinkButton>
</EditItemTemplate>
<ItemStyle HorizontalAlign="Center" />
<HeaderStyle Width="100px" />
</asp:TemplateField>
</Columns>
<PagerTemplate>
<br />
<asp:Label ID="lblPage" runat="server" Text='<%# "第" + (((GridView)Container.NamingContainer).PageIndex + 1) + "页/共" + (((GridView)Container.NamingContainer).PageCount) + "页" %> '></asp:Label>
<asp:LinkButton ID="lbnFirst" runat="Server" Text="首页" Enabled='<%# ((GridView)Container.NamingContainer).PageIndex != 0 %>'
CommandName="Page" CommandArgument="First"></asp:LinkButton>
<asp:LinkButton ID="lbnPrev" runat="server" Text="上一页" Enabled='<%# ((GridView)Container.NamingContainer).PageIndex != 0 %>'
CommandName="Page" CommandArgument="Prev"></asp:LinkButton>
<asp:LinkButton ID="lbnNext" runat="Server" Text="下一页" Enabled='<%# ((GridView)Container.NamingContainer).PageIndex != (((GridView)Container.NamingContainer).PageCount - 1) %>'
CommandName="Page" CommandArgument="Next"></asp:LinkButton>
<asp:LinkButton ID="lbnLast" runat="Server" Text="尾页" Enabled='<%# ((GridView)Container.NamingContainer).PageIndex != (((GridView)Container.NamingContainer).PageCount - 1) %>'
CommandName="Page" CommandArgument="Last"></asp:LinkButton>
到第<asp:TextBox runat="server" ID="inPageNum"></asp:TextBox>页
<asp:LinkButton ID="LinkButton1" CommandName="go" runat="server">Go</asp:LinkButton>
<br />
</PagerTemplate>
</asp:GridView>
后台代码:
protected void gdvList_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
{
gdvList.PageIndex = -1;
GridBind();
}
protected void gdvList_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
try
{
string id = this.gdvList.Rows[e.RowIndex].Cells[0].Text;
int n = userAccess.DeleteUserTarget(id);
GridBind();
}
catch
{
}
}
protected void gdvList_RowEditing(object sender, GridViewEditEventArgs e)
{
gdvList.EditIndex = e.NewEditIndex; //GridView编辑项索引等于单击行的索引
GridBind();
}
protected void gdvList_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
try
{
string id = (gdvList.Rows[e.RowIndex].FindControl("btnUpdate") as LinkButton).CommandArgument;
string target = ((TextBox)gdvList.Rows[e.RowIndex].FindControl("txtTarget")).Text;
int n = 0;
if (dataAccess.IsDecimal(target)) //更新
n = userAccess.UpdateUserTarget(id, decimal.Parse(target));
if (n > 0)
{
gdvList.EditIndex = -1;
GridBind();
}
}
catch (Exception ex)
{
ClientScript.RegisterStartupScript(this.GetType(), "", "<script>alert('" + ex.Message + "')</script>");
}
}
protected void gdvList_RowDataBound(object sender, GridViewRowEventArgs e)
{
}
private void GridBind()
{
DataTable dt = new DataTable();
dt = userAccess.GetUserTarget("");
gdvList.DataSource = dt;
gdvList.DataBind();
}
涉及分页的代码:
protected void gdvList_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
try
{
gdvList.PageIndex = e.NewPageIndex;
GridBind();
TextBox tb = (TextBox)gdvList.BottomPagerRow.FindControl("inPageNum");
tb.Text = (gdvList.PageIndex + 1).ToString();
}
catch { }
}
protected void gdvList_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "go")
{
try
{
TextBox tb = (TextBox)gdvList.BottomPagerRow.FindControl("inPageNum");
int num = int.Parse(tb.Text);
GridViewPageEventArgs ea = new GridViewPageEventArgs(num - 1);
gdvList_PageIndexChanging(null, ea);
}
catch (Exception ex)
{
Response.Write("<script>alert('" + ex.Message + "')</script>");
}
}
}
如果编辑中,需要显示dropdownlist,则需要在gdvPlan_RowDataBound中编写
如:显示部门列表
<asp:TemplateField HeaderText="部门" ItemStyle-HorizontalAlign="Center">
<EditItemTemplate>
<asp:DropDownList ID="ddlDept" runat="server">
</asp:DropDownList>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="lblDeptName" runat="server" Text='<%#Eval("deptName")%>' Width="90%"></asp:Label>
</ItemTemplate>
<ItemStyle HorizontalAlign="Center" />
</asp:TemplateField>
protected void gdvPlan_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
if (e.Row.RowState == DataControlRowState.Edit || e.Row.RowState == (DataControlRowState.Alternate | DataControlRowState.Edit))
{
//保存当前行的deptname的值
string deptname = this.gdvPlan.DataKeys[e.Row.RowIndex]["deptname"].ToString();
//对DropDownList做数据绑定
DropDownList dropTemp = (DropDownList)e.Row.Cells[4].FindControl("ddlDept");
dropTemp.ClearSelection();
if (dropTemp != null)
{
DataTable dt = dataAccess.GetDeptList();
dropTemp.DataSource = dt;
dropTemp.DataTextField = "deptname";
dropTemp.DataValueField = "deptID";
dropTemp.DataBind();
//到DropDownList中根据au_id的值去找需要设置为选中状态的项目,将其设置为选中
ListItem item = dropTemp.Items.FindByText(deptname);
if (item != null)
{
item.Selected = true;
}
}
}
}
}
GridView 编辑、删除 、分页的更多相关文章
- GridView编辑删除操作
第一种:使用DataSource数据源中自带的编辑删除方法,这样的不经常使用,在这里就不加说明了. 另外一种:使用GridView的三种事件:GridView1_RowEditing(编辑).Grid ...
- GridView编辑删除
A前台代码 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="test.asp ...
- GridView总结二:GridView自带编辑删除更新
GridView自带编辑删除更新逻辑很简单:操作完,重新绑定.总结总结,防止忘记... 效果图: 前台代码: <%@ Page Language="C#" AutoEvent ...
- php+redis实现注册、删除、编辑、分页、登录、关注等功能
本文实例讲述了php+redis实现注册.删除.编辑.分页.登录.关注等功能.分享给大家供大家参考,具体如下: 主要界面 连接redis redis.php <?php //实例化 $red ...
- gridview 级联删除、dataset
gridview编辑列(不使用控件绑定数据源)需要如下代码:<asp:GridView ID="GridView1" runat="server" Aut ...
- Repeater控件使用(含删除,分页功能)
Repeater控件使用(含删除,分页功能) 摘自:http://www.cnblogs.com/alanliu/archive/2008/02/25/914779.html 前臺代碼 <%@ ...
- editplus批量删除重复行(编辑-删除-删除重复行)
editplus快速删除重复数据 多行文本,有些行的文字或数据是重复的,该怎么删除重复部分,只留下不重复的部分?很多人对这个问题感到无比头疼,Editplus同样能快速帮你删除数据. 那么,editp ...
- 使用GridView自带分页的代码
关于GridView分页页码的讨论 在GridView中实现分页的效果方法非常easy,仅仅须要在"GridView任务"对话框中进行设置就能够了.在"GridView任 ...
- GridView 控制默认分页页码间距 及字体大小
GridView 控制默认分页页码间距 及字体大小 PagerCss TD A:hover { WIDTH: 20px; COLOR: black; padding-left: 4px; paddin ...
随机推荐
- Bzoj 1901: Zju2112 Dynamic Rankings 树套树,线段树,平衡树,Treap
1901: Zju2112 Dynamic Rankings Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 6471 Solved: 2697[Su ...
- Kruskal算法构造最小生成树
Kruskal算法来构造最小生成树,我总结了分为以下步骤: (1)建图,构造Kruskal边集,边集元素应该包括该边的起始顶点.终止顶点.权值: (2)将边集按权值从小到大的顺序进行排序: (3)从小 ...
- Java Networking: InetAddress
The InetAddress is Java's representation of an IP address. Instances of this class are used together ...
- Oracle ROWNUM用法和分页查询总结(转)
[转载] Oracle的分页查询语句基本上可以按照本文给出的格式来进行套用. Oracle分页查询格式(一):http://yangtingkun.itpub.net/post/468/100278 ...
- 微信开发第2章 通过appid appsecret获取accesstoken
通过 appid appsecret是可以获取accesstoken的 ,请不要一直获取,不然会把token的机会浪费掉,获取到后7200秒后失效,建议保存为6000秒到7000秒左右,具体可以查看微 ...
- 泛型类、Map集合
————泛型: JDK1.5之后出现的新特性:用于解决安全问题,是一个类型安全机制. 好处: 1.将运行时期出现的问题ClassCastException ,转移到了编译时期,方便于程序员解决问题,让 ...
- java 图片压缩 剪切 水印 转换 黑白 缩放
专注java已6年,欢迎加入java核心技术QQ群:135138817,每周五晚有群主进行技术讲座. import java.awt.AlphaComposite; import java.awt.C ...
- ubuntu 14.04 chromium,firefox 怎样正确安装Adobe flash player
一.firefox 正确安装Adobe flash player 有时候我们须要在Ubuntu下採用手动安装一些软件,比方Firefox的Flash插件.Adobe® Flash® Player 是一 ...
- 通过strace 监控 fdatasync
通过strace 监控 Redis AOF文件的系统调用 Redis中主要的AOF设置 「appendonly yes」 开启每次更新操作后进行日志记录 「appendfilename appendo ...
- qt 与mysql建立交互式连接
void QSqlDatabase::setConnectOptions(const QString & options = QString())Sets database-specific ...