- 浏览: 7852499 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (2425)
- 软件工程 (75)
- JAVA相关 (662)
- ajax/web相关 (351)
- 数据库相关/oracle (218)
- PHP (147)
- UNIX/LINUX/FREEBSD/solaris (118)
- 音乐探讨 (1)
- 闲话 (11)
- 网络安全等 (21)
- .NET (153)
- ROR和GOG (10)
- [网站分类]4.其他技术区 (181)
- 算法等 (7)
- [随笔分类]SOA (8)
- 收藏区 (71)
- 金融证券 (4)
- [网站分类]5.企业信息化 (3)
- c&c++学习 (1)
- 读书区 (11)
- 其它 (10)
- 收藏夹 (1)
- 设计模式 (1)
- FLEX (14)
- Android (98)
- 软件工程心理学系列 (4)
- HTML5 (6)
- C/C++ (0)
- 数据结构 (0)
- 书评 (3)
- python (17)
- NOSQL (10)
- MYSQL (85)
- java之各类测试 (18)
- nodejs (1)
- JAVA (1)
- neo4j (3)
- VUE (4)
- docker相关 (1)
最新评论
-
xiaobadi:
jacky~~~~~~~~~
推荐两个不错的mybatis GUI生成工具 -
masuweng:
(转)JAVA获得机器码的实现 -
albert0707:
有些扩展名为null
java 7中可以判断文件的contenttype了 -
albert0707:
非常感谢!!!!!!!!!
java 7中可以判断文件的contenttype了 -
zhangle:
https://zhuban.me竹板共享 - 高效便捷的文档 ...
一个不错的网络白板工具
一个很典型的场景,一个GRIDVIEW中的每个数据行,有两个图片按钮 “操作(修改)”,“删除”,
先来看前端的代码
<asp:ScriptManager ID="sm" runat="server" ></asp:ScriptManager>
<table class="Table" border="0" cellpadding="5" cellspacing="0">
<tr>
<td colspan="2">
<asp:UpdatePanel runat="server" ID="up">
<ContentTemplate>
<asp:GridView ID="gvCategory" runat="server" Width="100%" AutoGenerateColumns="False" SkinID="gvSkin" OnRowCommand="gvCategory_RowCommand" OnRowDataBound="gvCategory_RowDataBound" AllowPaging="True" OnPageIndexChanging="gvCategory_PageIndexChanging">
<Columns>
<asp:TemplateField HeaderText="相册分类">
<ItemTemplate>
<a href='Category.aspx?CategoryID=<%# Eval("ID") %>'><%# Eval("Name") %>(<%# Eval("PhotoCount") %>)</a>
</ItemTemplate>
<ItemStyle HorizontalAlign="Left" Width="70%" />
<HeaderStyle HorizontalAlign="Left" />
</asp:TemplateField>
<asp:TemplateField HeaderText="分类状态">
<ItemTemplate>
<%# (byte)Eval("Status") == 0 ? "公开" : "私有" %>
</ItemTemplate>
<ItemStyle HorizontalAlign="Center" Width="18%" />
<HeaderStyle HorizontalAlign="Center" />
</asp:TemplateField>
<asp:TemplateField HeaderText="操作">
<ItemTemplate>
<asp:ImageButton ID="imgUpdate" runat="server" CommandArgument='<%# Eval("ID") %>' ImageUrl="~/App_Themes/ASPNETAjaxWeb/Images/edit.PNG" CommandName="update" />
<asp:ImageButton ID="imgDelete" runat="server" Visible='<%# (int)Eval("PhotoCount") > 0 ? false : true %>' CommandArgument='<%# Eval("ID") %>' ImageUrl="~/App_Themes/ASPNETAjaxWeb/Images/delete.PNG" CommandName="del" />
</ItemTemplate>
<ItemStyle HorizontalAlign="Center" Width="12%" />
<HeaderStyle HorizontalAlign="Center" />
</asp:TemplateField>
</Columns>
<PagerSettings Mode="NextPreviousFirstLast" />
</asp:GridView>
</ContentTemplate>
</asp:UpdatePanel>
要点是,修改和删除的图片按钮的commandname要设置好,要注意commandargument的设置,因为这里代表里当前行的ID,删除的时候要用
然后要设计rowcommand事件,在用户单击控件每行中的按钮时触发
protected void gvCategory_RowCommand(object sender,GridViewCommandEventArgs e)
{
if(e.CommandName.ToLower() == "update")
{ ///重定向到修改分类页面
Response.Redirect("~/UpdateCategory.aspx?CategoryID=" + e.CommandArgument.ToString());
return;
}
if(e.CommandName.ToLower() == "del")
{ ///删除选择的相册分类
Album album = new Album();
if(album.DeleteCategory(Int32.Parse(e.CommandArgument.ToString())) > 0)
{
BindPageData();
}
return;
}
而要为删除按钮加提示信息,则需要在rowdatabound事件中说明,在每一行数据绑定后触发,为每个删除的按钮增加客户端的确认
protected void gvCategory_RowDataBound(object sender,GridViewRowEventArgs e)
{ ///添加删除确认的对话框
ImageButton imgDelete = (ImageButton)e.Row.FindControl("imgDelete");
if(imgDelete != null)
{
imgDelete.Attributes.Add("onclick","return confirm(\"您确认要删除当前行的相册分类吗?\");");
}
}
当然,分页部分也写上吧
protected void gvCategory_PageIndexChanging(object sender,GridViewPageEventArgs e)
{ ///设置新的页码,并重新显示数据
gvCategory.PageIndex = e.NewPageIndex;
BindPageData();
}
还有rowdatabound事件也经常用,比如数据库取出来的1,0字段,要变为“男”,“女”显示,则这样
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
先来看前端的代码
<asp:ScriptManager ID="sm" runat="server" ></asp:ScriptManager>
<table class="Table" border="0" cellpadding="5" cellspacing="0">
<tr>
<td colspan="2">
<asp:UpdatePanel runat="server" ID="up">
<ContentTemplate>
<asp:GridView ID="gvCategory" runat="server" Width="100%" AutoGenerateColumns="False" SkinID="gvSkin" OnRowCommand="gvCategory_RowCommand" OnRowDataBound="gvCategory_RowDataBound" AllowPaging="True" OnPageIndexChanging="gvCategory_PageIndexChanging">
<Columns>
<asp:TemplateField HeaderText="相册分类">
<ItemTemplate>
<a href='Category.aspx?CategoryID=<%# Eval("ID") %>'><%# Eval("Name") %>(<%# Eval("PhotoCount") %>)</a>
</ItemTemplate>
<ItemStyle HorizontalAlign="Left" Width="70%" />
<HeaderStyle HorizontalAlign="Left" />
</asp:TemplateField>
<asp:TemplateField HeaderText="分类状态">
<ItemTemplate>
<%# (byte)Eval("Status") == 0 ? "公开" : "私有" %>
</ItemTemplate>
<ItemStyle HorizontalAlign="Center" Width="18%" />
<HeaderStyle HorizontalAlign="Center" />
</asp:TemplateField>
<asp:TemplateField HeaderText="操作">
<ItemTemplate>
<asp:ImageButton ID="imgUpdate" runat="server" CommandArgument='<%# Eval("ID") %>' ImageUrl="~/App_Themes/ASPNETAjaxWeb/Images/edit.PNG" CommandName="update" />
<asp:ImageButton ID="imgDelete" runat="server" Visible='<%# (int)Eval("PhotoCount") > 0 ? false : true %>' CommandArgument='<%# Eval("ID") %>' ImageUrl="~/App_Themes/ASPNETAjaxWeb/Images/delete.PNG" CommandName="del" />
</ItemTemplate>
<ItemStyle HorizontalAlign="Center" Width="12%" />
<HeaderStyle HorizontalAlign="Center" />
</asp:TemplateField>
</Columns>
<PagerSettings Mode="NextPreviousFirstLast" />
</asp:GridView>
</ContentTemplate>
</asp:UpdatePanel>
要点是,修改和删除的图片按钮的commandname要设置好,要注意commandargument的设置,因为这里代表里当前行的ID,删除的时候要用
然后要设计rowcommand事件,在用户单击控件每行中的按钮时触发
protected void gvCategory_RowCommand(object sender,GridViewCommandEventArgs e)
{
if(e.CommandName.ToLower() == "update")
{ ///重定向到修改分类页面
Response.Redirect("~/UpdateCategory.aspx?CategoryID=" + e.CommandArgument.ToString());
return;
}
if(e.CommandName.ToLower() == "del")
{ ///删除选择的相册分类
Album album = new Album();
if(album.DeleteCategory(Int32.Parse(e.CommandArgument.ToString())) > 0)
{
BindPageData();
}
return;
}
而要为删除按钮加提示信息,则需要在rowdatabound事件中说明,在每一行数据绑定后触发,为每个删除的按钮增加客户端的确认
protected void gvCategory_RowDataBound(object sender,GridViewRowEventArgs e)
{ ///添加删除确认的对话框
ImageButton imgDelete = (ImageButton)e.Row.FindControl("imgDelete");
if(imgDelete != null)
{
imgDelete.Attributes.Add("onclick","return confirm(\"您确认要删除当前行的相册分类吗?\");");
}
}
当然,分页部分也写上吧
protected void gvCategory_PageIndexChanging(object sender,GridViewPageEventArgs e)
{ ///设置新的页码,并重新显示数据
gvCategory.PageIndex = e.NewPageIndex;
BindPageData();
}
还有rowdatabound事件也经常用,比如数据库取出来的1,0字段,要变为“男”,“女”显示,则这样
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
//判断当前行是否是数据行
if (e.Row.RowType == DataControlRowType.DataRow)
{ //用FindControl方法找到模板中的Label控件
Label lb1= (Label)e.Row.FindControl("Label1");
//因为RowDataBound是发生在数据绑定之后,所以我们可以
//判断Label绑定的数据,如果是True,就更改其text属性为男
if (lb1.Text== "True")
lb1.Text = "男";
else
lb1.Text = "female";
}
}
发表评论
-
.NET 嵌入式版4.2发布:关键更新抢先看
2012-02-22 14:57 1839作为.NET家族的一员,.Net Micro Framewor ... -
asp.net中模拟测试smtp发信
2011-03-20 18:47 1877在asp.net 中,有时要测试发信SMTP,但如果在单元测试 ... -
vs.net 2010两个数据库方面的好工具
2011-02-14 11:47 1849今天发现vs.net 2010在处理数据库方面的两个不错的工具 ... -
将gridview导出到excel,world,pdf的小结
2011-02-07 22:47 2956下面小结下把gridview的数据导出到excel,world ... -
gridviewtips1:gridview的页脚中的加亮显示和页数显示
2011-01-27 09:58 2361在asp.net 中,要经常显示gridview中的页数,并且 ... -
asp.net 4中的HTML过滤的一个新特性
2011-01-21 09:47 1861在asp.net 4中,有个新增加的对HTML过滤,防止XSS ... -
在vs.net 2010中使用重构方法
2011-01-20 16:55 2160在vs.net 2010中,可以很方便地对一些冗余的代码进行重 ... -
一个比较好的.net 3.5的异常报告类
2011-01-10 14:51 1950发现了一个比较好的异常报告类,其中用到了.net 3.5以上的 ... -
asp.net 4.0中menu菜单的改进
2011-01-03 22:47 2572在asp.net 3.5时,如果用menucontrol时,使 ... -
asp.net 4中的新特性之一:控制URL长度
2010-09-14 23:06 2390asp.net 4中的新特性之一:控制URL长度。在ASP.N ... -
vs.net 2010中使用code snippets
2010-09-09 20:58 1576其实在vs.net 2010中,使用code snippets ... -
百万开发者拥戴!七大.NET著名开源项目
2010-09-07 09:42 2288新翻译了篇帖子,原文发表在 http://publish.i ... -
asp.net 2010中jquery调用webservice
2010-08-30 22:21 2756在asp.net 2010中,在建立web应用时,默认已经在s ... -
.net中的placeholder控件
2005-01-15 20:00 1928最近留意到有人问,NET中的placeholder控件用来做什 ... -
asp.net 中一次性更新DATAGRID中所有记录
2005-01-15 20:03 943在asp.net中,如何一次性 ... -
在asp.net 中实现只允许数字输入的文本框
2005-01-15 20:18 1492在asp.net 中实现只允许数字输入的文本框,其实是十分简单 ... -
一个重构代码的小技巧
2005-01-16 21:58 1138刚开始接触重构,听就听的多了,理论没认真看过,不过今天发现,将 ... -
防止SQL注入攻击
2005-02-05 14:42 1146看了本期ASP。NET杂志里的一篇讲防止SQL注入攻击的文章, ... -
优秀.net 控件包介绍
2005-02-18 19:47 1677在oday上看到得,将介绍摘录在这里 NetAdvantage ... -
vs.net 2005中的ConfigurationManager
2005-05-06 18:11 1635vs.net 2005中的ConfigurationManag ...
相关推荐
在ASP.NET 2.0中操作数据:概述插入、更新和删除数据
在ASP.NET 2.0中操作数据:批删除数据(源码)
在ASP.NET 2.0中操作数据:批删除数据
在ASP.NET 2.0中操作数据:综叙:在DataList里编辑和删除数据
ASP.NET 2.0 中新增的 DataSource 系列控件提供了一种声明性语法,用于定义数据源并 控制数据的检索更新。 3)GridView 控件 在 ASP.NET 2.0 中新增的控件中,GridView 控件功能十分强大,取代了 ASP.NET 1.x ...
在ASP.NET 2.0中操作数据:为删除数据添加客户端确认
在ASP.NET 2.0中操作数据:综叙:在DataList里编辑和删除数据(源码)
在ASP.NET 2.0中操作数据:编辑和删除现有的二进制数据
在ASP.NET 2.0中操作数据:为删除数据添加客户端确认(源码)
在ASP.NET 2.0中操作数据:概述插入、更新和删除数据(源码)
【ASP.NET编程知识】在ASP.NET 2.0中操作数据之十六:概述插入、更新和删除数据.docx
在ASP.NET 2.0中操作数据:编辑和删除现有的二进制数据(源码)
在ASP.NET 2.0中操作数据:研究插入、更新和删除的关联事件
【ASP.NET编程知识】在ASP.NET 2.0中操作数据之二十二:为删除数据添加客户端确认.docx
在ASP.NET 2.0中操作数据:研究插入、更新和删除的关联事件(源码)
【ASP.NET编程知识】在ASP.NET 2.0中操作数据之三十六:在DataList里编辑和删除数据概述.docx
本书全面介绍了ASP.NET各种编程技能和2.0版中的巨大变化,并详细阐述了2.0版中的每个新特性。书中提供了大量的实例,可帮助读者快速掌握如何在.NET平台下开发功能强大的ASP.NET应用程序。本书适合有一些基础的ASP...
本书全面介绍了ASP.NET各种编程技能和2.0版中的巨大变化,并详细阐述了2.0版中的每个新特性。书中提供了大量的实例,可帮助读者快速掌握如何在.NET平台下开发功能强大的ASP.NET应用程序。本书适合有一些基础的ASP...
本书全面介绍了ASP.NET各种编程技能和2.0版中的巨大变化,并详细阐述了2.0版中的每个新特性。书中提供了大量的实例,可帮助读者快速掌握如何在.NET平台下开发功能强大的ASP.NET应用程序。本书适合有一些基础的ASP...
13.1 ADO.NET 2.0概述 211 13.1.1 ADO.NET 2.0的新特性 211 13.1.2 ADO.NET中的对象 212 13.2 Connection对象 212 13.3 Command对象 215 13.3.1 插入数据 215 13.3.2 查询数据 217 13.3.3 更新数据 219 13.3.4 删除...