`
leonardleonard
  • 浏览: 779447 次
社区版块
存档分类
最新评论

给DataGrid添加确定删除的功能

阅读更多

给DataGrid添加确定删除的功能
DataGrid的功能我想大家是知道的,我在实际的应用中遇到如下的问题,客户要求在删除之前做一次提示。类

似于windows。首先我们都知道DataGrid支持删除的功能,我们可以向DataGrid里面添加删除列就可以实现,

下面我想用模板列来实现带提示的删除按钮。我们用northwind的示例数据库作为例子数据库操纵Categories表。

DataGrid的Html页的内容如下:
<asp:DataGrid id="grdTest" style="Z-INDEX: 101; LEFT: 205px; POSITION: absolute; TOP: 134px"

runat="server">
    <Columns>
     <asp:TemplateColumn>
      <ItemTemplate>
       <asp:Button id="btnDelete"

runat="server" Text="Button" CommandName="Delete"></asp:Button>
      </ItemTemplate>
     </asp:TemplateColumn>
    </Columns>
   </asp:DataGrid>
我们只添加了一个模板列,其他的列都是在运行的时候自动生成的。
可以看出这个模板列很像删除列但是又不是删除列,我们给一个普通的Button添加了一个CommandName

="Delete"的属性。这是用来响应DataGrid的ItemCommand事件的!在删除列里面就是这样的!

接下来就是后台代码了,代码如下所示:
private DataSet ds = new DataSet();
private void Page_Load(object sender, System.EventArgs e)
  {
   // 在此处放置用户代码以初始化页面
   if(!this.IsPostBack){
    string strConnection = ConfigurationSettings.AppSettings

["sa"].ToString();
    SqlConnection myConnection = new SqlConnection(strConnection);
    SqlDataAdapter myAdapter = new SqlDataAdapter("SELECT

CategoryID,CategoryName, Description FROM Categories",myConnection);
    myAdapter.Fill(ds);
    this.grdTest.DataSource = ds.Tables[0].DefaultView;
    this.grdTest.DataKeyField = "CategoryID";
    this.grdTest.DataBind();
   }
  }

接下来我们给模板列里面的每一个按钮都添加一个客户端的onclick事件。我想大家都应改知道Attributes属

性吧!可以通过他向客户端输出客户端控件的属性比如:长度、颜色等等。但是通常情况我们使用它添加客户

端事件。知道javascript的朋友肯定知道confirm了!它会弹出一个确认对话框如果确定才提交form否则就不

提交,所以使用这个也是很自然的了。
private void grdTest_ItemDataBound(object sender,

System.Web.UI.WebControls.DataGridItemEventArgs e) {
   switch(e.Item.ItemType){
    case ListItemType.Item:
    case ListItemType.AlternatingItem:
    case ListItemType.EditItem:{
     Button btn = (Button)e.Item.FindControl("btnDelete");
     btn.Attributes.Add("onclick", "return confirm('你是否

确定删除这条记录');");
     break;
    }
   }
  }
添加好这个事件里以后我们还需要添加如下的代码才能完成我们的工作:
private void grdTest_ItemCommand(object source,

System.Web.UI.WebControls.DataGridCommandEventArgs e) {
   if(e.CommandName == "Delete"){
    this.DeleteRow(this.grdTest.DataKeys[e.Item.ItemIndex].ToString

());
   }
  }
上面的事件就是我们点击DataGrid里面的控件的时候激发的事件,我们可以通过CommandName筛选出来我们想

要激发的方法DeleteRow(),一下就是这个方法的代码:
private void DeleteRow(string i){
   string strConnection = ConfigurationSettings.AppSettings["sa"].ToString

();
   SqlConnection myConnection = new SqlConnection(strConnection);
   SqlCommand cmd = new SqlCommand("DELETE FROM Categories WHERE

(CategoryID = "+i+")",myConnection);
   myConnection.Open();
   cmd.ExecuteNonQuery();
   myConnection.Close();
  }
上面的函数接收一个参数,此参数是当前选中行的关键字。
有错误的地方请多多指教。e_mail:wu_jian830@hotmail.com

分享到:
评论

相关推荐

    为DataGrid添加确认删除的对话框

    为DataGrid添加确认删除的对话框 confirm javascript

    在DataGrid中为删除添加确认对自话框

    在DataGrid中为删除添加确认对自话框

    asp.net专家疑难解答200问

    如何为DataGrid控件中的删除列添加确认框 122.如何使用DataGrid控件实现主细表 123.如何实现DataGrid控件的双向排序 124.如何动态的显示·隐藏DataGrid控件的某一列 125.如何实现DataGrid控件中...

    asp.net专家疑难解答200问源码

    121.如何为DataGrid控件中的删除列添加确认框 122.如何使用DataGrid控件实现主细表 123.如何实现DataGrid控件的双向排序 124.如何动态的显示·隐藏DataGrid控件的某一列 125.如何实现DataGrid控件中DropDownList...

    VS.NET 2005中常用的一些代码

    四、为按钮添加确认对话框 五、点击表格行链接另一页 六、超连接列传递参数 七、绑定日期格式 八、统一捕获异常 Global.asax中 九、自定义异常处理 十、Panel 横向滚动,纵向自动扩展 十一、DataGrid行随鼠标变色 ...

    asp.net开发常用整理集合

    不断更新中  Asp.net页面内传参数方法  调用存储过程(两种方法比较)  调用存储过程通用类DBHelper  加密解密  SQL常用DBHelper  Asp.net存储过程无限分类 ... 为gridview“删除”列添加确认对话框

    ASP.NET常用代码

    myDeleteButton.Attributes.Add("onclick","return confirm('您是否确定要删除这条信息');"); break; default: break; } } 5.点击表格行链接另一页 private void grdCustomer_ItemDataBound(object sender, ...

    ASP.NET程序中常用的三十三种代码.txt

     myDeleteButton.Attributes.Add("onclick","return confirm(’您是否确定要删除这条信息’);");  break;  default:  break;  } }  5.点击表格行链接另一页 private void grdCustomer_ItemDataBound(object...

    包含Text和ColumnID的ImageButton

    VS2005自带的ImageButton没有Text,于是...添加了一个string的ColumnID属性,可以绑定到DataGrid链接数据表的ID,用来确定数据的行数(实用),如此就相当于多了一个隐藏的Text,自定义DataGrid删除等按钮时相当有用。

    flex3的cookbook书籍完整版dpf(包含目录)

    启动DataGrid拖拽功能 6.9节. 编辑DataGrid数据项 6.10节. 在DataGrid中搜索并自动滚屏到匹配项 6.11节. 使用GroupingCollection生成数据汇总 6.12节. 为GroupingCollection创建异步刷新 第七章:渲染器和编辑器...

    vb.net.rar_vb.net_vb.net 文件传输_vb.net 实例_vb.net access操作_vb.n

    (2) 用VB.NET设计一个数据库应用程序,要求利用ADO.NET核心对象或组件来实现数据库的连接与访问,并能通过数据绑定控件如DataGrid或TextBox以及其他Windows控件来实现数据的浏览、添加、删除、更新及查询等基本...

    asp.net知识库

    体验.net2.0的优雅(3) -- 为您的 SiteMap 添加 控制转发功能 GridView控件使用经验 ASP.NET 2.0:弃用 DataGrid 吧,有新的网格控件了! ASP.NET2.0控件一览---标准控件(1) ASP.NET2.0控件一览---标准控件(2) ASP...

    vb学生成绩管理系统

    程序的主要功能  利用SQL语句完成对学生成绩表的插入、修改、删除和查询操作。比如:  (1)插入记录:  Insert Into 学生成绩表(学号,课程号,成绩)  Values(‘001’,’001’,85)  (2)删除记录  Delete From ...

    十天学会ASP.net--我认为ASP.NET比ASP难很多,希望大家做好准备

    所以我们有两种方法:如果是读取一条记录的数据或者不多的数据,我们用DATAREADER采集数据,然后赋值给LABEL控件的Text属性即可;如果是读取大量数据我们就采用DATAGRID。 今天我们就来说一下DATAREADER: string ...

    ASP.NET常用的三十三种实用代码

    myDeleteButton.Attributes.Add("onclick","return confirm(’您是否确定要删除这条信息’);"); break; default: break; } } 5.点击表格行链接另一页 private void grdCustomer_ItemDataBound(object sender, System...

    软件工程工资管理系统

    因此,针对该公司而言,我们经过反复论证,最终确定了工资管理系统的设计方案,该工资管理系统的主要功能如图3.1所示: 2.1.2功能需求描述 2.1.2.1员工基本信息模块 员工基本信息模块具有员工信息输入、员工增...

    流程编辑器.zip

    img onclick="deleteListenerField('+id+')" src="../../image/delete.gif" title="'+"删除"+'" style="cursor:hand;"/&gt;'; if(rowData.editing) return s; else return e+'&nbsp;'+d; } function ...

    。NET经典技术

    本文就给出一些.net的经典代码,希望对大家有所帮助……  1.弹出对话框.点击转向指定页面  Response.Write("");  Response.Write("");  2.弹出对话框  Response.Write("");  3.删除文件  string filename =...

Global site tag (gtag.js) - Google Analytics