Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Bom sou iniciante em ASP.NET, e não consigo implementar em meu código uma confirmação antes de excluir um registro.
Tenho o DataGrid feito e com o botão de excluir (imagebutton), gostaria que al clicar nele aparece um alert com a mensagem "Deseja excluir o Registro", porém tinha vários exemplos na internet mas não consegui fazer funcionar, se alguém puder dar uma ajuda eu agradeço, abaixo segue meu código:
<%@ Page Language="VB" ClientTarget="uplevel" Debug="true" %><%@ import Namespace="System.IO" %><%@ import Namespace="System.Data" %><%@ import Namespace="System.Data.Odbc" %><script runat="server"> Sub Page_Load(Sender As Object, E As EventArgs) If Not Page.IsPostBack Then erro.Text=Request.QueryString("status") MyDG.CurrentPageIndex = 0 BindData("usuario") End If End Sub Public Sub BindData(ByVal ordenar as String) Dim myConnection As String = "driver={MySQL ODBC 3.51 Driver};server=localhost;database=db_asec;uid=asec_;pwd=asecpress_" Dim cn As OdbcConnection = New OdbcConnection(myConnection) '2. Cria o objeto command passando a string SQL Dim strSQL as String = "SELECT * FROM tbl_senhas ORDER BY "& ordenar Dim myCommand as New OdbcCommand(strSQL, cn) '3. Cria o objeto DataAdapter Dim myDA as New OdbcDataAdapter() myDA.SelectCommand = myCommand '4. Preenche o DataSet Dim myDS as New DataSet() Dim RcdCount As integer myDA.Fill(myDS,"tbl_senhas") RcdCount = myDS.Tables("tbl_senhas").Rows.Count.ToString() 'Define a fonte de dados do datagrid MyDG.DataSource = myDS MyDG.DataBind() 'mostra a informacao na pagina atual lblMessage.Text = "Página " & MyDG.CurrentPageIndex+1 & " de " & MyDG.PageCount & " - Total de Registros: " & RcdCount End Sub Sub MyDG_PageChanger(Sender As Object, E As DataGridPageChangedEventArgs) MyDG.CurrentPageIndex = E.NewPageIndex BindData("usuario") End Sub Sub MyDG_SortCommand(Source As Object, E As DataGridSortCommandEventArgs) BindData(e.SortExpression) End Sub Sub ImageButton_Command(sender As Object, e As CommandEventArgs) If (e.CommandName = "Alterar") Then Server.Transfer("users_new.aspx?cod="&e.CommandArgument) Elseif (e.CommandName = "Excluir") Then Exclui(e.CommandArgument) Elseif (e.CommandName = "Incluir") Then Server.Transfer("users_new.aspx?new=true") End If End Sub Sub Exclui(ByVal cod As String) Dim myConnection As OdbcConnection Dim myCommand As OdbcCommand Dim strAtualiza As String strAtualiza = "DELETE FROM tbl_senhas WHERE codigo="& cod myConnection = New OdbcConnection("driver={MySQL ODBC 3.51 Driver};server=localhost;database=db_asec;uid=asec_;pwd=asecpress_") myCommand = New OdbcCommand(strAtualiza, myConnection) myConnection.Open() 'myCommand.ExecuteNonQuery() erro.Text="Excluido com Sucesso" MyDG.currentpageindex=0 BindData("usuario") End Sub</script><html><head></head><body> <form runat="server"> <p align="center"> <asp:Label id="Erro" runat="server" forecolor="Red" text="" font-size="XX-Small" font-names="Verdana" font-bold="True"></asp:Label> </p> <p> <asp:ImageButton id="Incluir" runat="server" OnCommand="ImageButton_Command" CommandName="Incluir" CommandArgument="" ToolTip="Incluir Novo Registro" ImageUrl="imagens/new.gif"></asp:ImageButton> <asp:DataGrid id="MyDG" runat="server" BorderColor="LightGray" AllowSorting="True" OnSortCommand="MyDG_SortCommand" BorderStyle="Solid" BorderWidth="1px" CellPadding="1" AutoGenerateColumns="False" Font-Size="XX-Small" Font-Names="Verdana" PageSize="2" Width="100%" AllowPaging="True" OnPageIndexChanged="MyDG_PageChanger"> <FooterStyle font-italic="False" font-strikeout="False" font-underline="False" font-overline="False" font-bold="False"></FooterStyle> <PagerStyle backcolor="White" forecolor="Gray" nextpagetext="Próxima » " font-italic="False" font-strikeout="False" font-underline="False" font-overline="False" font-bold="False" horizontalalign="Center" prevpagetext=" « Anterior"></PagerStyle> <AlternatingItemStyle backcolor="WhiteSmoke"></AlternatingItemStyle> <ItemStyle height="28px"></ItemStyle> <HeaderStyle backcolor="Gainsboro" height="30px" horizontalalign="Center" font-bold="True" verticalalign="Middle"></HeaderStyle> <Columns> <asp:BoundColumn DataField="codigo" HeaderText="Código" SortExpression="codigo" ReadOnly="True"></asp:BoundColumn> <asp:BoundColumn DataField="usuario" HeaderText="Usuário" SortExpression="usuario"></asp:BoundColumn> <asp:BoundColumn DataField="senha" HeaderText="Senha" SortExpression="senha"></asp:BoundColumn> <asp:TemplateColumn HeaderText="Opções"> <ItemStyle horizontalalign="Center"></ItemStyle> <ItemTemplate> <asp:ImageButton id="Alterar" CommandArgument='<%#Container.DataItem("codigo")%>' CommandName="Alterar" OnCommand="ImageButton_Command" ToolTip="Alterar este Registro" ImageUrl="imagens/alterar.gif" AlternateText="Alterar" runat="server"></asp:ImageButton> <asp:ImageButton id="Excluir" CommandArgument='<%#Container.DataItem("codigo")%>' CommandName="Excluir" OnCommand="ImageButton_Command" ToolTip="Excluir este Registro" ImageUrl="imagens/excluir.gif" AlternateText="Excluir" runat="server"></asp:ImageButton> </ItemTemplate> </asp:TemplateColumn> </Columns> </asp:DataGrid> <asp:Label id="lblMessage" runat="server" font-size="XX-Small" font-names="Verdana" font-bold="True" horizontalalign="Center" font-name="Verdana" font-italic="False"></asp:Label> </p> </form></body></html>Já havia tentando as duas formas mas não funcionou, alguém tem outra solução?
Após vários dias tentando encontrei a solução para meu problema, o fato é que existem diversas dicas para fazer o que eu queria na internet, porém todas incompletas, todas pediam para acrescentar a função abaixo:
Private Sub MyDG_ItemCreated(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataGridItemEventArgs) If e.Item.ItemType = ListItemType.Item Or e.Item.ItemType = ListItemType.AlternatingItem Or e.Item.ItemType = ListItemType.EditItem Then Dim btnExcluir As ImageButton = e.Item.FindControl("btnExcluir") btnExcluir.Attributes.Add("onClick", "return confirm('Deseja excluir o item selecionado?');") End If If e.Item.ItemType = ListItemType.AlternatingItem Or e.Item.ItemType = ListItemType.Item Then e.Item.Attributes.Add("onMouseOver", "selecionaGrid(this)") e.Item.Attributes.Add("onMouseOut", "deSelecionaGrid(this)") e.Item.Style("cursor") = "hand" ' Cursor End If End Sub
Mas só a função não basta é preciso chama-la, é onde todas as dicas em vários sites falharam, em nenhum lugar indicou que deveria chamar a função no DataGrid é só acrescentar o seguinte comando na linha do DataGrid
onItemCreated="MyDG_ItemCreated"Ficando a linha do Datagrid como abaixo:
<asp:DataGrid id="MyDG" runat="server" onItemCreated="MyDG_ItemCreated" OnPageIndexChanged="MyDG_PageChanger" AllowPaging="True" Width="100%" PageSize="2" Font-Names="Verdana" Font-Size="XX-Small" AutoGenerateColumns="False" CellPadding="1" BorderWidth="1px" BorderStyle="Solid" OnSortCommand="MyDG_SortCommand" AllowSorting="True" BorderColor="LightGray">
Espero ajudar a outros com a complementação das dicas espalhadas pela net, e obrigado a todos.
fala benyhapper,
talvez estes tópicos possam lhe ajudar:
http://forum.imasters.com.br/index.php?sho...confirma%E7%E3o
http://forum.imasters.com.br/index.php?sho...confirma%E7%E3o
t+