Add confirmation deletion for DataGrid

xiaoxiao2021-03-06  84

Add confirmation deletion for DataGrid (1)

Confirm before deleting data is a very friendly approach. In this article, we discuss how to use the TemplateColumn and Button server controls.

Deleteit.aspx

<% @ Page language = "vb" autoeventwireup = "false" codebehind = "deleteit.aspx.vb" inherits = "aspxweb.deleteit"%>

Webform1 </ Title></p> <p><meta content = "Microsoft Visual Studio .NET 7.0" Name = "Generator"></p> <p><meta content = "Visual Basic 7.0" Name = "Code_Language"></p> <p><meta content = "javascript" name = "vs_defaultclientscript"></p> <p><meta content = "http://schemas.microsoft.com/intellisense/ie5" Name = "vs_targetschema"></p> <p></ HEAD></p> <p><body></p> <p><asp: label id = "label1" runat = "server"> </ asp: label></p> <p><form runat = "server" id = "form1"></p> <p><ask: DataGrid ID = "MyDataGrid" onItemcreated = "DataGrid_Itemcreated"</p> <p>Datakeyfield = "title" autogeneratecolumns = "false" runat = "server"></p> <p><Columns></p> <p><ask: templatecolumn></p> <p><Itemtemplate></p> <p><ask = "btndelete" runat = "server"> </ asp: button></p> <p></ Itemtemplate></p> <p></ asp: templateColumn></p> <p><asp: boundcolumn datafield = "title"> </ asp: boundcolumn></p> <p><ask: boundcolumn datafield = "createDate" dataformatstring = "{0: YYYY-M-D}"> </ asp: boundcolumn></p> <p></ Columns></p> <p></ ask: DataGrid></p> <p></ form></p> <p></ body></p> <p></ Html></p> <p>Postcutive code: deleteit.aspx.vb</p> <p>Imports System.Webimports System.collections</p> <p>Imports system</p> <p>Imports system.data</p> <p>Imports system.data.oledb</p> <p>Imports System.Web.ui.WebControls</p> <p>Public Class Deleteit</p> <p>Inherits System.Web.ui.page</p> <p>Protected Withevents Label1 As System.Web.ui.WebControls.label</p> <p>Protected withevents mydatagrid as system.web.ui.webcontrols.datagrid</p> <p>#Region "The code" of the web form designer "</p> <p>'This call is required for the web form designer.</p> <p><System.diagnostics.debuggerstepthrough ()> private subinitializecomponent ()</p> <p>End Sub</p> <p>Private sub page_init (byval sender as system.object, byval e as system.eventargs) Handles mybase.init</p> <p>'Codegen: This method call is necessary for the web form designer</p> <p>'Don't modify it using the code editor.</p> <p>InitializeComponent ()</p> <p>End Sub</p> <p>#End region</p> <p>SUB Page_Load (Byval E as Eventargs) Handles MyBase.Load</p> <p>MyDataGrid.headerstyle.font.bold = true</p> <p>MyDataGrid.headerstyle.horizontalalign = horizontalalign.center</p> <p>MyDataGrid.columns (0) .Headertext = "Operation"</p> <p>MyDataGrid.columns (1) .Headertext = "Title"</p> <p>MyDataGrid.columns (2) .Headertext = "Release Date"</p> <p>IF not ispostback.</p> <p>DIM STRCN AS STRING = "provider = microsoft.jet.Oledb.4.0; data source =" server.mappath ("test.mdb")</p> <p>DIM STRSQL AS STRING</p> <p>strsql = "SELECT TOP 15 ObjectGuid, title, createdate from Document Order By CreateDate DESC"</p> <p>DIM CN AS New OLEDBConnection (STRCN)</p> <p>cn.open ()</p> <p>DIM CMD AS New OLEDBCommand (strsql, cn)</p> <p>MyDataGrid.dataSource = cmd.executeReader (Commandbehavior.CloseConnection)</p> <p>MyDataGrid.Database</p> <p>cmd.dispose ()</p> <p>CMD = Nothing</p> <p>cn.close ()</p> <p>cn.dispose ()</p> <p>CN = Nothing</p> <p>END IF</p> <p>End Sub</p> <p>Sub DataGrid_Itemcreated (Byval E AS DataGriditeMeventArgs)</p> <p>Handles myDataGrid.Itemcreated</p> <p>Select Case E.Item.itemTypecase ListItemType.Item, ListItemType.AlternatingItem, ListItemType.editItem</p> <p>DIM MyDeletebutton as button</p> <p>MyDeleteButton = E.Item.FindControl ("btndelete")</p> <p>MyDeleteButton.Text = "Delete this line"</p> <p>MyDeleteButton.attributes.add ("Onclick", "Return Confirm ('You really want to delete" _</p> <p> E.Item.itemindex.toTOString "Row? ');")</p> <p>End SELECT</p> <p>End Sub</p> <p>Private sub mydatagrid_itemcommand (Byval Source As Object, _</p> <p>Byval e as system.Web.ui.WebControls.DataGridCommandEventArgs_</p> <p>Handles myDataGrid.ItemCommand</p> <p>Response.write ("You want to delete: <font color = red>" E.Item.cells (1) .text "</ font>")</p> <p>E.Item.BackColor = system.drawing.color.ivory</p> <p>End Sub</p> <p>END CLASS</p> <p>Add a confirmation delete for DataGrid (2)</p> <p>Add a confirmation deleted dialog in DataGrid, the second method is to use ButtonColumn, this approach is different from the first method: We can't use the FindControl method to reference the Button control, because we don't know that it is generated by ButtonColumn. The ID of each Button control, we can use TableCell to reference the Button control in Tablecell. Once the Button control is referenced, we can use the Attributes collection to add an onclick event. The source code is as follows:</p> <p>Deleteit2.aspx</p> <p><% @ Page language = "vb" autoeventwireup = "false" codebehind = "deleteit2.aspx.vb"</p> <p>Inherits = "aspxweb.deleteit2"%></p> <p><! Doctype html public "- // w3c // DTD HTML 4.0 Transitional // En"></p> <p><Html></p> <p><HEAD></p> <p><title> deleteit2 </ title></p> <p><meta name = "generator" Content = "Microsoft Visual Studio .NET 7.0"></p> <p><meta name = "code_language" content = "Visual Basic 7.0"></p> <p><meta name = "vs_defaultclientscript" content = "javascript"></p> <p><meta name = "vs_targetschema" content = "http://schemas.microsoft.com/intellisense/ie5"> </ head></p> <p><body ms_positioning = "gridLayout"></p> <p><form id = "form1" method = "post" runat = "server"></p> <p><asp: label id = "label1" runat = "server"> </ asp: label></p> <p><ask: DataGrid ID = "MyDataGrid" onItemcreated = "DataGrid_Itemcreated" runat = "server"</p> <p>OndeleteCommand = "MyDataGrid_delete" DataKeyfield = "Title" AutoGenerateColumns = "false"></p> <p><Columns></p> <p><asp: buttoncolumn commandname = "delete" /></p> <p><ask: templatecolumn></p> <p><Itemtemplate></p> <p><ask: label runat = "server" text = '<% # Databaseer.eval (Container.DataItem, "Title")%> /></p> <p></ Itemtemplate></p> <p></ asp: templateColumn></p> <p><ask: templatecolumn></p> <p><Itemtemplate></p> <p><ask: label runat = "server" text = '<% # databinder.eval (container.dataitem, _</p> <p>"CreateDate", "{0: YYYY-M-D}")%> '/></p> <p></ Itemtemplate></p> <p></ asp: templateColumn></p> <p></ Columns></p> <p></ ask: DataGrid></p> <p></ form></p> <p></ body></p> <p></ Html></p> <p>Deleteit2.aspx.vb</p> <p>Imports system</p> <p>Imports system.Web</p> <p>Imports system.data</p> <p>Imports system.data.oledb</p> <p>Imports System.Web.ui.WebControls</p> <p>Public class deleteit2</p> <p>Inherits System.Web.ui.page</p> <p>Protected Withevents Label1 As System.Web.ui.WebControls.label</p> <p>Protected withevents mydatagrid as system.web.ui.webcontrols.datagrid</p> <p>#Region "The code" of the web form designer "</p> <p>'This call is required for the web form designer.</p> <p><System.diagnostics.debuggerstepthrough ()> private subinitializecomponent ()</p> <p>End Subprivate Sub Page_init (Byval Sender As System.Object, ByVal E AS System.EventArgs)</p> <p>Handles mybase.init</p> <p>'Codegen: This method call is necessary for the web form designer</p> <p>'Don't modify it using the code editor.</p> <p>InitializeComponent ()</p> <p>End Sub</p> <p>#End region</p> <p>Private sub page_load (byval sender as system.Object, byval e as system.eventargs) _EventArgs</p> <p>Handles mybase.load</p> <p>'Place the user code of the initialization page here</p> <p>MyDataGrid.headerstyle.horizontalalign = horizontalalign.center</p> <p>MyDataGrid.headerstyle.font.bold = true</p> <p>MyDataGrid.headerstyle.backcolor = system.drawing.color.ivory</p> <p>MyDataGrid.columns (0) .Headertext = "Operation"</p> <p>MyDataGrid.columns (1) .Headertext = "Title"</p> <p>MyDataGrid.columns (2) .Headertext = "Create Date"</p> <p>IF not ispostback.</p> <p>DIM STRCN As String = "provider = microsoft.jet.Oledb.4.0; data source =" _</p> <p> Server.MAppath ("Test.mdb")</p> <p>Dim strsql as string = "SELECT TOP 15 ObjectGuid, Title, Created" _</p> <p> "From Document Order By CreateDate DESC"</p> <p>DIM CN AS New OLEDBConnection (STRCN)</p> <p>cn.open ()</p> <p>DIM CMD AS New OLEDBCommand (strsql, cn)</p> <p>MyDataGrid.dataSource = cmd.executeReader (Commandbehavior.CloseConnection)</p> <p>MyDataGrid.Database</p> <p>cmd.dispose ()</p> <p>CMD = Nothing</p> <p>cn.close ()</p> <p>cn.dispose ()</p> <p>CN = Nothing</p> <p>END IF</p> <p>End Sub</p> <p>Public Sub DataGrid_Itemcreated (Byval Sender As Object, _</p> <p>Byval e as system.web.ui.webcontrols.dataGriditemeventargs) Handles myDataGrid.Itemcreated</p> <p>Select Case E.Item.ItemType</p> <p>Case ListItemType.Item, ListItemType.AlternatingItem, ListItemType.editItem</p> <p>DIM MyTablecell As TableCell</p> <p>MyTableCell = E.Item.cells (0)</p> <p>DIM MyDeletebutton as LinkButton</p> <p>MyDeleteButton = MyTableCell.controls (0)</p> <p>MyDeleteButton.attributes.add ("Onclick", "Return Confirm ('Do you really want to delete this row?');") mydeletebutton.text = "Delete this line"</p> <p>End SELECT</p> <p>End Sub</p> <p>Sub MyDataGrid_Delete (Byval E AS DataGridCommandEventEventEventArgs)</p> <p>Label1.text = "You want to delete: <font color = red>" _</p> <p> myDataGrid.dataKeys (cint (e.Item.ItemIndex) "</ font>"</p> <p>E.Item.BackColor = system.drawing.color.tomato</p> <p>End Sub</p> <p>END CLASS</p> <p>Add confirmation deletion for DataGrid (3)</p> <p>Add a confirmation deleted dialog box in DataGrid, the third method is to use the RegisteronSubmitState method for the Page object. The page.registeronSubmitStatement method enables the page to access the client onSubmit event. The script should be a function call to the client code to register elsewhere. The source code is as follows:</p> <p>Deleteit3.aspx</p> <p><% @ Page language = "vb" autoeventwireup = "false" codebehind = "deteleit3.aspx.vb" inherits = "aspxweb.detleit3"%></p> <p><! Doctype html public "- // w3c // DTD HTML 4.0 Transitional // En"></p> <p><Html></p> <p><HEAD></p> <p><title> deetEleit3 </ Title></p> <p><meta content = "Microsoft Visual Studio .NET 7.0" Name = "Generator"></p> <p><meta content = "Visual Basic 7.0" Name = "Code_Language"></p> <p><meta content = "javascript" name = "vs_defaultclientscript"></p> <p><meta content = "http://schemas.microsoft.com/intellisense/ie5" Name = "vs_targetschema"></p> <p></ HEAD></p> <p><body ms_positioning = "gridLayout"></p> <p><asp: label id = "label1" runat = "server"> </ asp: label></p> <p><form id = "form1" runat = "server"></p> <p><ask: DataGrid ID = "MyDataGrid" runat = "server" autogeneratecolumns = "true" datakeyfield = "title"> <columns></p> <p><asp: buttoncolumn commandname = "delete" Buttype = "pushbutton" /></p> <p></ Columns></p> <p></ ask: DataGrid></p> <p></ form></p> <p></ body></p> <p></ Html></p> <p>Postcode deteleit3.aspx.vb</p> <p>Imports system.Web</p> <p>Imports system.data</p> <p>Imports system.data.oledb</p> <p>Public class deetleit3</p> <p>Inherits System.Web.ui.page</p> <p>Protected Withevents Label1 As System.Web.ui.WebControls.label</p> <p>Protected withevents mydatagrid as system.web.ui.webcontrols.datagrid</p> <p>#Region "The code" of the web form designer "</p> <p>'This call is required for the web form designer.</p> <p><System.diagnostics.debuggerstepthrough ()> private subinitializecomponent ()</p> <p>End Sub</p> <p>Private sub page_init (byval sender as system.object, byval e as system.eventargs) Handles mybase.init</p> <p>'Codegen: This method call is necessary for the web form designer</p> <p>'Don't modify it using the code editor.</p> <p>InitializeComponent ()</p> <p>End Sub</p> <p>#End region</p> <p>Private sub page_load (Byval e as system.eventargs) Handles mybase.load</p> <p>'Place the user code of the initialization page here</p> <p>IF not ispostback.</p> <p>DIM STRCN AS STRING = "provider = microsoft.jet.Oledb.4.0; data source =" server.mappath ("test.mdb")</p> <p>DIM strsql as string = "SELECT TOP 15 TITLE, CREATEDATE"</p> <p>DIM CN AS New OLEDBConnection (STRCN)</p> <p>cn.open ()</p> <p>DIM CMD AS New OLEDBCommand (strsql, cn)</p> <p>MyDataGrid.dataSource = cmd.executeReader (Commandbehavior.CloseConnection)</p> <p>MyDataGrid.Database</p> <p>cmd.dispose ()</p> <p>CMD = Nothing</p> <p>cn.close ()</p> <p>cn.dispose ()</p> <p>CN = Nothing</p> <p>END IF</p> <p>Page.RegisteronSubmitStatement ("OnSubmit", "{RETURN CONFIRM ('Do you really want to delete this row ??')}") End Sub</p> <p>Sub myDataGrid_Itemcreated (byval sender as object, _</p> <p>Byval e as system.web.ui.webcontrols.dataGriditemeventargs) Handles myDataGrid.Itemcreated</p> <p>Select Case E.Item.ItemType</p> <p>Case ListItemType.Item, ListItemType.AlternatingItem, ListItemType.editItem</p> <p>DIM MyTablecell As TableCell</p> <p>MyTableCell = E.Item.cells (0)</p> <p>DIM MyDeletebutton as button</p> <p>MyDeleteButton = MyTableCell.controls (0)</p> <p>MyDeleteButton.Text = "Delete this line"</p> <p>Case ListItemType.Header</p> <p>E.Item.font.bold = true</p> <p>E.Item.horizontalalign = horizontalalign.center</p> <p>E.Item.BackColor = system.drawing.color.ivory</p> <p>E.Item.cells (0) .Text = "Operation"</p> <p>E.Item.cells (1) .text = "Article title"</p> <p>E.Item.cells (2) .Text = "Release Date"</p> <p>End SELECT</p> <p>End Sub</p> <p>Private sub MydataGrid_deleteCommand (Byval Source As Object, _</p> <p>Byval e as system.web.ui.webcontrols.dataGridCommandEventArgs) Handles myDataGrid.deleteCommand</p> <p>Label1.text = "You delete: <font color = red> mydatagrid.datakeys (cint (e.Item.ItemIndex)) " </ font> "</p> <p>E.Item.BackColor = system.drawing.color.tomato</p> <p>End Sub</p> <p>End</p></div><div class="text-center mt-3 text-grey"> 转载请注明原文地址:https://www.9cbs.com/read-106400.html</div><div class="plugin d-flex justify-content-center mt-3"></div><hr><div class="row"><div class="col-lg-12 text-muted mt-2"><i class="icon-tags mr-2"></i><span class="badge border border-secondary mr-2"><h2 class="h6 mb-0 small"><a class="text-secondary" href="tag-2.html">9cbs</a></h2></span></div></div></div></div><div class="card card-postlist border-white shadow"><div class="card-body"><div class="card-title"><div class="d-flex justify-content-between"><div><b>New Post</b>(<span class="posts">0</span>) </div><div></div></div></div><ul class="postlist list-unstyled"> </ul></div></div><div class="d-none threadlist"><input type="checkbox" name="modtid" value="106400" checked /></div></div></div></div></div><footer class="text-muted small bg-dark py-4 mt-3" id="footer"><div class="container"><div class="row"><div class="col">CopyRight © 2020 All Rights Reserved </div><div class="col text-right">Processed: <b>0.046</b>, SQL: <b>9</b></div></div></div></footer><script src="./lang/en-us/lang.js?2.2.0"></script><script src="view/js/jquery.min.js?2.2.0"></script><script src="view/js/popper.min.js?2.2.0"></script><script src="view/js/bootstrap.min.js?2.2.0"></script><script src="view/js/xiuno.js?2.2.0"></script><script src="view/js/bootstrap-plugin.js?2.2.0"></script><script src="view/js/async.min.js?2.2.0"></script><script src="view/js/form.js?2.2.0"></script><script> var debug = DEBUG = 0; var url_rewrite_on = 1; var url_path = './'; var forumarr = {"1":"Tech"}; var fid = 1; var uid = 0; var gid = 0; xn.options.water_image_url = 'view/img/water-small.png'; </script><script src="view/js/wellcms.js?2.2.0"></script><a class="scroll-to-top rounded" href="javascript:void(0);"><i class="icon-angle-up"></i></a><a class="scroll-to-bottom rounded" href="javascript:void(0);" style="display: inline;"><i class="icon-angle-down"></i></a></body></html><script> var forum_url = 'list-1.html'; var safe_token = 'jl9g6EjZx70SowAJ_2FH1LebND8CEYmZ2fQPvrzovXMLOO9Aa9ppVABmW_2Bcd3O1K_2FXk5wNDVYI1nTo33J6GsSHbw_3D_3D'; var body = $('body'); body.on('submit', '#form', function() { var jthis = $(this); var jsubmit = jthis.find('#submit'); jthis.reset(); jsubmit.button('loading'); var postdata = jthis.serializeObject(); $.xpost(jthis.attr('action'), postdata, function(code, message) { if(code == 0) { location.reload(); } else { $.alert(message); jsubmit.button('reset'); } }); return false; }); function resize_image() { var jmessagelist = $('div.message'); var first_width = jmessagelist.width(); jmessagelist.each(function() { var jdiv = $(this); var maxwidth = jdiv.attr('isfirst') ? first_width : jdiv.width(); var jmessage_width = Math.min(jdiv.width(), maxwidth); jdiv.find('img, embed, iframe, video').each(function() { var jimg = $(this); var img_width = this.org_width; var img_height = this.org_height; if(!img_width) { var img_width = jimg.attr('width'); var img_height = jimg.attr('height'); this.org_width = img_width; this.org_height = img_height; } if(img_width > jmessage_width) { if(this.tagName == 'IMG') { jimg.width(jmessage_width); jimg.css('height', 'auto'); jimg.css('cursor', 'pointer'); jimg.on('click', function() { }); } else { jimg.width(jmessage_width); var height = (img_height / img_width) * jimg.width(); jimg.height(height); } } }); }); } function resize_table() { $('div.message').each(function() { var jdiv = $(this); jdiv.find('table').addClass('table').wrap('<div class="table-responsive"></div>'); }); } $(function() { resize_image(); resize_table(); $(window).on('resize', resize_image); }); var jmessage = $('#message'); jmessage.on('focus', function() {if(jmessage.t) { clearTimeout(jmessage.t); jmessage.t = null; } jmessage.css('height', '6rem'); }); jmessage.on('blur', function() {jmessage.t = setTimeout(function() { jmessage.css('height', '2.5rem');}, 1000); }); $('#nav li[data-active="fid-1"]').addClass('active'); </script>