GridView编辑、取消按钮自定义控件

这个需求来自于论坛一位坛友提出的问题,他希望能够自定义编辑、取消按钮,而不是用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(10001, "guwei40371");
        dt.Rows.Add(10002, "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[1].Text + "‘)</script>");//直接弹出当前行单元格索引为1的内容
}  

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

最后看下执行的效果。

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


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

时间: 2024-11-04 12:36:27

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

[android] 解决DatePickerDialog和TimePickerDialog控件取消按钮问题

一. 问题提出 在Android程序中,我们通常需要使用DatePicker来设置日期,TimePicker来设置时间.其基本步骤是: 1.先定义DatePicker和TimePicker布局 2.然后通过Calendar类获得系统时间 3.接着通过init方法将日期传递给DatePicker初始化日期控件 4.在响应点击事件中可以通过DatePicker的getYear().getDayOfMonth().getMonth()函数获取具体日期 同时可以在OnDateChangedListene

GridView编辑删除操作 (转载)

第一种:使用DataSource数据源中自带的编辑删除方法,这种不常用,在这里就不加说明了. 第二种:使用GridView的三种事件:GridView1_RowEditing(编辑).GridView1_RowUpdating(更新).GridView1_RowCancelingEdit(取消编辑).GridView1属性中将DataKeyNames的值设置为主键名,否则找不到索引,这个很重要哦. 该方法有2种操作,一种是不对绑定列转换为模板列,另外一种是转换为模板列. 这里先说不转换为模板列的

GridView 编辑修改

//点击gridview控件自带的编辑按钮时执行的事件    protected void gvNewsList_RowEditing(object sender, GridViewEditEventArgs e)    {        gvNewsList.EditIndex = e.NewEditIndex;        BindData();    }//在编辑状态下,点击取消按钮时执行的事件    protected void gvNewsList_RowCancelingEdit(

GridView行中按钮的使用

GridView行中按钮的使用 在web项目的过程中,特别是开发ASP.NET应用程序,经常会用到数据显示空间GridView控件,然后需要每行的结尾放置一个button或linkbutton来对当前行进行操作.如下图,添加一个删除按钮,当点击按钮时删除所在行的记录. 本文将提供5种常用的方法来实现行记录的删除操作,并由此来了解下GridView中按钮的使用. 方法1: 在GridView控件中放置一个模板列,往里面放置一个按钮,并用主键值绑定按钮,代码如下: <asp:TemplateFiel

自定义UISearchBar的“取消按钮”

需求: UISearchBar的取消按钮,没有公共方法可以修改它的属性.但我们仍可以通过遍历UISearchBar的子控件来设置该"取消按钮". 效果: 将UISearchBar的取消按钮中的"取消"文字,更改为"搜索". 代码如下: - (void)setSearchBar:(UISearchBar *)searchBar{ UISearchBar *searchBar = [[UISearchBar alloc] initWithFrame:

EasyUI 中点击取消按钮关闭Dialog(对话框窗口)

1.在取消按钮里的function中通过id找到这个对话框所在的层, 2.点出这个对话框,然后在括号了写入关闭的方法 <div id="dl1" class="easyui-dialog" title="窗口" style="width:400px;height: 200px" data-options=" toolbar:[ { text:'添加', iconCls:'icon-add', handler:f

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

***********取消按钮的监听和设置代理textField字数限制 UITextFieldDelegate #import "HMViewController.h" @interface HMViewController () <UITextFieldDelegate> @end @implementation HMViewController /** 1> UIButton -> UIControl -> UIView 1.1 设置控件的状态 启用

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

在iOS开发中,使用UISearchBar的时候,当搜索框失去焦点的时候,取消按钮是默认不能点击的,如图按钮的颜色是灰色的:  这是因为此时取消按钮的enabled属性被设置为NO了,那么当我们需要让取消按钮一直可以点击的时候,就需要我们自己来改变该属性的赋值,这里举例当点击search按钮的时候,回收键盘的同时让取消按钮的可以点击,在代理方法里面添加代码如下: -(void)searchBarSearchButtonClicked:(UISearchBar *)searchBar { [sea

GridView编辑删除

1 A前台代码 2 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="test.aspx.cs" Inherits="Maticsoft.Web.CarRentWeb.test" %> 3 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "