向新的事件处理程序添加参数

本文关键字:添加 参数 程序 事件处理 | 更新日期: 2023-09-27 18:29:08

我正在创建一个动态网格视图,其中有一部分我创建了一个新的事件处理程序进行编辑。我还创建了一个新的方法来进行实际编辑,但我需要将数据表名称作为参数之一传递给它,这样我就可以重新绑定它

        GridView gridData = new GridView();
        gridData.ID = "test";
        gridData.AutoGenerateEditButton = true;
        gridData.RowEditing += new GridViewEditEventHandler(grid_RowEditing);
        gridData.DataSource = tbl;
        gridData.DataBind();

protected void grid_RowEditing(object sender, GridViewEditEventArgs e)
    {
        ((GridView)sender).EditIndex = e.NewEditIndex;
        // I don't know how to pass the datasource name to this method, or if its even possible, because i won't ever know the actual gridview name because its dynamically created
        //((GridView)sender).DataSource =  ;
        ((GridView)sender).DataBind();

向新的事件处理程序添加参数

如果不需要取消挂起事件处理程序,最简单的方法是使用lambda表达式

string dataSourceName = ...;
gridData.RowEditing += (sender, e) => grid_RowEditing(gridData, dataSourceName, e);
        gridData.DataSource = tbl;
        gridData.DataBind();

void grid_RowEditing(GridView gridData, string dataSourceName, GridViewEventArgs e) {
  ...
}