这个需求来自于论坛一位坛友提出的问题,他希望能够自定义编辑、取消按钮,而不是用GridView自带的编辑和取消。这里只当抛砖引玉,提出一些解决方案。

首先在页面前台设置一个GridView。

<div>
<asp:GridView ID="GridView1" runat="server">
<Columns>
<asp:TemplateField HeaderText="操作">
<ItemTemplate>
<table>
<td align="center">
<asp:Button ID="Edit" runat="server" Text="编辑" Visible="true" OnClick="Edit_Click"
CommandArgument="<%# Container.DataItemIndex %>" />
<asp:Button ID="Cancel" runat="server" Text="取消" Visible="false" OnClick="Cancel_Click" />
</td>
</table>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</div>

这里注意,我通过给按钮Edit的CommandArgument属性设置一个DataItemIndex值,这个值就是默认行的索引值。通过这个参数可以获取GridView的行号。

然后我在首页加载的时候绑定数据源。

protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
DataTable dt = new DataTable();
dt.Columns.Add("id", typeof(int));
dt.Columns.Add("name", typeof(string)); dt.Rows.Add(, "guwei40371");
dt.Rows.Add(, "guwei40372"); this.GridView1.DataSource = dt.DefaultView;
this.GridView1.DataBind();
}
}

这里很简单,就是绑定了两列,给GridView绑定上。

接下来两个按钮事件:

protected void Edit_Click(object sender, EventArgs e)
{
int index = Convert.ToInt32((sender as Button).CommandArgument);//获取到行号
Button button = this.GridView1.Rows[index].FindControl("Cancel") as Button;//找到当前行的Cancel按钮
button.Visible = true;//设置按钮的Visible为true
} protected void Cancel_Click(object sender, EventArgs e)
{
int row = ((GridViewRow)((Button)sender).NamingContainer).RowIndex;//通过按钮直接找到命名容器(GridViewRow)的RowIndex
Response.Write("<script>alert('" + this.GridView1.Rows[row].Cells[].Text + "')</script>");//直接弹出当前行单元格索引为1的内容
}

具体代码的含义,上面已经注释明了,这里不重复。

最后看下执行的效果。

当点击编辑按钮的时候,显示取消按钮。


当点击取消按钮的时候,弹出10001。

GridView编辑、取消按钮自定义控件的更多相关文章

  1. GridView 编辑修改

    //点击gridview控件自带的编辑按钮时执行的事件    protected void gvNewsList_RowEditing(object sender, GridViewEditEvent ...

  2. GridView 编辑、删除 、分页

    类似代码都差不多,记录一下,便于以后查看使用. 前台页面: <asp:GridView ID="gdvList" runat="server" AutoG ...

  3. GridView行中按钮的使用

    转载自:http://blog.csdn.net/hongdi/article/details/6455947 GridView行中按钮的使用 在web项目的过程中,特别是开发ASP.NET应用程序, ...

  4. 【Azure 机器人】微软Azure Bot 编辑器系列(3) : 机器人对话流中加入帮助和取消按钮功能 (The Bot Framework Composer tutorials)

    欢迎来到微软机器人编辑器使用教程,从这里开始,创建一个简单的机器人. 在该系列文章中,每一篇都将通过添加更多的功能来构建机器人.当完成教程中的全部内容后,你将成功的创建一个天气机器人(Weather ...

  5. IOS开发UISearchBar失去第一响应者身份后,取消按钮不执行点击事件的问题

    在iOS开发中,使用UISearchBar的时候,当搜索框失去焦点的时候,取消按钮是默认不能点击的,如图按钮的颜色是灰色的:  这是因为此时取消按钮的enabled属性被设置为NO了,那么当我们需要让 ...

  6. lhgdialog: iframe页面里面的,确定,关闭、取消按钮的操作

    lhgdialog: iframe页面里面的,确定,关闭.取消按钮的操作 如果你正在用lhgdialog,用他人iframe,或者 content:'url:http://www.baidu.com/ ...

  7. 三角形及选中取消按钮的css代码

    1.三角形: 1.用传统的方式: .triangle{ background:blue transparent transparent transparent; border-width:100px ...

  8. IOS第五天(1:取消按钮的监听和设置代理textField字数限制)

    ***********取消按钮的监听和设置代理textField字数限制 UITextFieldDelegate #import "HMViewController.h" @int ...

  9. confirm提示弹出确定和取消按钮

    js----> var con = confirm('这是一个确定加取消的提示窗口') if(con==true){ document.write("点击了确定按钮") }e ...

随机推荐

  1. Cache和Buffer的区别

    一.研究数据库的人这样理解:http://wenku.baidu.com/view/32b8b13e376baf1ffc4fad7e.html Cache和Buffer是两个不同的概念,简单的说,Ca ...

  2. 关于使用NotificationComat导致android2.3及以下版本无法显示自定义布局的解决方法.

    大伙都知道 android-support-v4为我们提供了很多兼容的解决方案, 其中就有关于通知栏的. NotificationCompat, 顺利成章操刀显示通知. eg: Intent inte ...

  3. CentOS中查看系统资源占用情况的命令

    用 'top -i' 看看有多少进程处于 Running 状态,可能系统存在内存或 I/O 瓶颈,用 free 看看系统内存使用情况,swap 是否被占用很多,用 iostat 看看 I/O 负载情况 ...

  4. 用Linux安装光盘修复GRUB

    转载:http://lgn21st.iteye.com/blog/179455 需要开视频会议,我不得零时从Ubuntu切换回去百年难道用一次的WinXP...发现自己的XP系统很混乱...决定重新装 ...

  5. Linux vi编辑器

    vim在内存缓冲区中处理数据 如果在启动vim时未指定文件名,或者这个文件不存在,vim会新开一段缓冲区来编辑. h 左移一个字符 j 下移一行 k 上移一行 l 右边移一个字符 PageDown(C ...

  6. Stupid Tower Defense

    Problem Description FSF is addicted to a stupid tower defense game. The goal of tower defense games ...

  7. Scheme中一些函数在C++里面的实现与吐槽

          最终我失败了,这是显而意见,我试图在一个很看重类型是什么的语言中实现无类型操作,事实上,哪怕我实现了基本的cons,car,cdr,list后面的代码也无法写下去.比如说list-n,根据 ...

  8. IIS 7.0、IIS 7.5 和 IIS 8.0 中的 HTTP 状态代码 转

    http://support.microsoft.com/kb/943891/zh-cn 日志文件位置 默认情况下,IIS 7.0.IIS 7.5 和 IIS 8.0 将日志文件放在以下文件夹中: i ...

  9. 实现类似 QQ音乐网页版 的单页面总结

    最近需要对创业团队的网站进行改版,而我负责前端设计和实现. 下面是一些总结与体会: 当设计完成之前,我就跟和我配合的Java 后台说用iframe实现,结果说麻烦不肯,到最后突然对我说还是用ifram ...

  10. HTTP相关知识 --转载

    转载之,言简意赅