在DataGrid控件中弹出删除确认框

来源:互联网 发布:仙侠学院2 网络电影 编辑:程序博客网 时间:2024/04/20 20:49

此时要用到DataGrid控件的ItemDataBound事件了,该事件表示每绑定完一行记录,就会触发相应的事件过程。在其中就可以想办法找到删除按钮,并给它添加JavaScript事件

e.Item.ItemType表示当前行的类型,DataGrid控件一般有标题行(ListItemType.Header)、普通行(ListItemType.Item)、交替行(ListItemType.AlternatingItem)、脚注行(ListItemType.Footer)等类型

<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.OleDb" %>
<script language="VB" runat="server">
Sub Page_Load(Sender As Object, E As EventArgs)
 If Not IsPostBack Then
  Call myDataBind()            '启动页面时调用数据绑定子程序
 End If
End Sub
'单击删除时执行该事件过程
Sub MyDataGrid_Delete(Sender As Object, E As DataGridCommandEventArgs)
 '建立Connection对象
 Dim conn As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.Mappath("address.mdb"))
 '建立Command对象
 Dim strSql As String
 strSql="Delete from users Where &  MyDataGrid.DataKeys(CInt(E.Item.ItemIndex))
 Dim cmd As New OleDbCommand(strSql, conn)
 '执行删除操作
 conn.Open()
 cmd.ExecuteNonQuery()
 conn.Close()
 '重新绑定
 MyDataGrid.EditItemIndex = -1
 Call myDataBind()
End Sub
'数据绑定子程序,供其它过程调用
Sub myDataBind()
 Dim conn As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.Mappath("address.mdb"))                                 '建立Connection对象
 Dim cmd As New OleDbCommand("select * from users", conn)        '建立Command对象
 Dim adp As New OleDbDataAdapter(cmd)                           '建立DataAdapter对象
 Dim ds As New DataSet()                                        '建立DataSet对象
 adp.Fill(ds, "users")                                           '填充DataSet
 MyDataGrid.DataSource=DS.Tables("users").DefaultView            '指定数据源
 MyDataGrid.DataBind()                                          '执行绑定
End Sub
'每绑定一行,将会触发该事件过程,在其中将给删除按钮添加JavaScript事件
Sub MyDataGrid_ItemDataBound(sender As Object, e As DataGridItemEventArgs)
 '这个判断语句表示,只有对于数据行才执行,对于标题栏和脚注栏则不执行
 If e.Item.ItemType=ListItemType.Item Or e.Item.ItemType=ListItemType.AlternatingItem Then
  '下面找到删除按钮控件,它其实是一个LinkButton控件
  Dim lbtnDel As LinkButton     '定义一个LinkButton控件
  lbtnDel=e.Item.Cells(0).Controls(0)   '它位于第0列第0个控件
  '下面添加JavaScript事件
  lbtnDel.Attributes.Add("onclick",return confirm('您真的要删除 " & e.Item.DataItem("name") & " 吗?');") 
 End If
End Sub
</script>
<html>
<body>
<form runat="server">
 <asp:DataGrid Width="95%"
HeaderStyle-BackColor="#BCBCBC"
OnDeleteCommand="MyDataGrid_Delete" 
DataKeyField="id"
OnItemDataBound="MyDataGrid_ItemDataBound" runat="server" >
  <Columns>
   <asp:ButtonColumn Text="删除" CommandName="Delete"/>
  </Columns>
 </asp:DataGrid>
</form>
</body>
</html>
 
原创粉丝点击