Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
ASP.NET 2.0 / 3.5 / 4.0
[asp.net 3.5]Problema con alert con conferma su pagina aspx
giovedì 28 luglio 2011 - 18.54
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
mazinga76
Profilo
| Newbie
10
messaggi | Data Invio:
gio 28 lug 2011 - 18:54
Ciao,
sto impazzendo grazie al fatto che asp.net non funziona il msgbox.
Sto costruendo un sito, ho una master ed una pagina prodotti in cui c'e' la visualizzazione dei prodotti su una gridview dal quale e' possibile effettuare sia la modifica che la cancellazione del prodotto stesso.
il mio problema e' questo, quando si clicca sulla cancellazione del prodotto, da codice, controllo se una altra tabella sono presenti righe con quel id prodotto ed eventualmente devo cancellarli dopo conferma da parte dell'utilizzatore.
sono riuscito a far apparire il pop up con la domanda inserendo uno script sulla pagina aspx l'idea era quella di mettere la risposta su hidden field e la proceura lo fa, il problema e che il popup compare dopo il rendering della pagina e quindi qualsiasi cosa si clicchi non scatta piu' nessun evento.
Allego il codice nella speranza di aver esplicitato correttamente il mio problema:
codice pagina prodotto.aspx:
<%@ Page Title="" Language="vb" AutoEventWireup="false" MasterPageFile="~/Template/master.Master" CodeBehind="Ins_Prodotti.aspx.vb" Inherits="TipografiaTM.Ins_Prod" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
<script type="text/javascript" language="javascript">
function ShowConfirmation() {
if (confirm('Cancellando questa categoria verranno eliminati dal listino i prodotti ad essa associati \nSei sicuro di volerla eliminare?') == true)
{
document.getElementById("ctl00_ContentPlaceHolder1_risposta").value = "Si"
}
else
{
document.getElementById("ctl00_ContentPlaceHolder1_risposta").value = "No"
}
}
</script>
<center>
<div>
<br />
<asp:HiddenField ID="risposta" runat="server" />
<asp:button ID="button1" runat="server" Text="Inserisci Nuovo Prodotto" />
<br />
<br />
<asp:Panel ID="Panel1" runat="server" Visible="false" BackColor="#FFFFCC"
Width="747px" BorderColor="#FFFF66" BorderStyle="Groove" >
<br />
<asp:Label ID="lbl_descrizione" runat="server" Text="Descrizione : "></asp:Label>
<asp:TextBox ID="Txt_Descrizione" runat="server" BorderColor="#000066"
BorderStyle="Solid" BorderWidth="1px" Height="16px" Width="284px"></asp:TextBox>
<br />
<br />
<asp:Label ID="Lbl_Didascalia" runat="server" Text="Didascalia : "></asp:Label>
<asp:TextBox ID="Txt_Didascalia" runat="server" BorderColor="#000066"
BorderStyle="Solid" BorderWidth="1px" Height="16px" Width="282px"></asp:TextBox>
<br />
<br />
<asp:FileUpload ID="FileUpload1" runat="server" Height="28px" Width="218px"
style="margin-top: 0px" />
<br />
<br />
<asp:Button ID="Cmd_Inserisci" runat="server" Text="Inserisci" />
<asp:Button ID="Cmd_Annulla" runat="server" Text="Annulla" />
<br />
<br />
</asp:Panel>
<br />
<br />
<asp:Label ID="Label1" runat="server" Text="Label" style="font-weight: 700">Elenco Prodotti</asp:Label>
<br />
<br />
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
DataKeyNames="id" DataSourceID="SqlDataSource1"
EnableModelValidation="True" AllowPaging="True" Width="642px" >
<Columns>
<asp:BoundField DataField="id" HeaderText="id" InsertVisible="False"
ReadOnly="True" SortExpression="id" Visible="False" ShowHeader="False">
<HeaderStyle ForeColor="LightBlue" />
<ItemStyle ForeColor="White" Width="1px" />
</asp:BoundField>
<asp:ImageField HeaderText="Immagine Prodotto" DataImageUrlField="percorso"
ReadOnly="true" >
<ControlStyle Height="150px" Width="150px" />
</asp:ImageField>
<asp:BoundField DataField="descrizione" HeaderText="Descrizione"
SortExpression="descrizione" />
<asp:BoundField DataField="didascalia" HeaderText="Didascalia"
SortExpression="didascalia" />
<asp:CommandField ShowEditButton="true" ButtonType="Image" EditImageUrl="~/Template/immagini/edit.png" EditText="Modifica" CancelText ="Annulla" CancelImageUrl="~/Template/immagini/stop3.gif" UpdateText="Aggiorna" UpdateImageUrl="~/Template/immagini/save.gif" />
<asp:CommandField ShowDeleteButton="true" ButtonType="Image" DeleteImageUrl="~/Template/immagini/delete.gif" CancelText="Elimina" />
</Columns>
<RowStyle CssClass="gridrow" />
<SelectedRowStyle CssClass="gridselectedrow" />
<HeaderStyle CssClass="gridheader" />
</asp:GridView>
<br />
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:m48962d1ConnectionString %>"
SelectCommand="SELECT [id], [descrizione],[didascalia],[percorso] FROM [prodotti] order by [descrizione]"
UpdateCommand="UPDATE prodotti SET descrizione = @descrizione, didascalia=@didascalia WHERE (id = @id)"
DeleteCommand="Delete from prodotti where id='0'">
<UpdateParameters>
<asp:Parameter Name="descrizione" Type="String" />
<asp:Parameter Name="didascalia" Type="String" />
<asp:Parameter Name="id" Type="Int32" />
</UpdateParameters>
</asp:SqlDataSource>
<br />
<br />
<br />
<br />
</div>
</center>
</asp:Content>
questo l'evento associato alla cancellazione sul pulsante della gridview:
Private Sub GridView1_RowDeleting(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewDeleteEventArgs) Handles GridView1.RowDeleting
Dim connectionstring As String = ConfigurationManager.ConnectionStrings("m48962d1ConnectionString").ConnectionString
Dim conn As New SqlConnection(connectionstring)
Dim comm As New SqlCommand("Select id_prodotto from combinazioni where id_prodotto=" & GridView1.DataKeys(e.RowIndex).Value, conn)
conn.Open()
Dim reader As SqlDataReader = comm.ExecuteReader()
If reader.Read Then
'Dim risp As MsgBoxResult
ClientScript.RegisterStartupScript(Me.GetType(), "showal", "ShowConfirmation()", True)
If risposta.Value = "No" Then
e.Cancel = True
conn.Close()
ElseIf risposta.Value = "Si" Then
conn.Close()
comm = New SqlCommand("delete from combinazioni where id_prodotto=" & GridView1.DataKeys(e.RowIndex).Value, conn)
conn.Open()
comm.ExecuteNonQuery()
conn.Close()
comm = New SqlCommand("delete from prodotti where id=" & GridView1.DataKeys(e.RowIndex).Value, conn)
conn.Open()
comm.ExecuteNonQuery()
conn.Close()
GridView1.DataBind()
End If
End If
conn.Close()
End Sub
quando clicco sul pulsante di cancellazione sel il reader.read e' true lui passa dal comando ClientScript.RegisterStartupScript(Me.GetType(), "showal", "ShowConfirmation()", True) poi verifica due voilte il valore della risposta ed esce dalla routine , quindi poi spunta il popup e non si attiva piu' l'evento.
aiutatemi vi prego. grazie
alx_81
Profilo
| Guru
8.814
messaggi | Data Invio:
ven 29 lug 2011 - 00:22
>Ciao,
Ciao
>sto impazzendo grazie al fatto che asp.net non funziona il msgbox.
questo perchè sei sul server. MsgBox non può essere fatto come un messaggio lato client..
>aiutatemi vi prego. grazie
io ti consiglio di cambiare approccio. Fossi in te utilizzerei la tecnologia AJAX per fare in modo di non dover fare voli pindarici per ottenere una conferma.
In poche parole, laddove ti serve, puoi pensare di legare un evento js via jQuery, in modo da far comparire un div (che sembra alla fine un popup modale, come fa ad esempio anche facebook).
Quel div porta con se due pulsanti, e quei pulsanti vanno a server senza fare postback, il sì chiamando solo una funzione che fa il tuo "salvataggio", il no, chiude il div.
Ti consiglio di guardare jQuery:
http://jquery.com
.
Se hai bisogno sono qui
ciao!
--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT
http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
mazinga76
Profilo
| Newbie
10
messaggi | Data Invio:
ven 29 lug 2011 - 06:36
grazie della risposta.
purtroppo non conosco nulla di jquery.
adesso spulcio un pò il link che mi hai fornito.
potresti riportarmi qualche esempio relativo al mio caso di utilizzo di jquery?
grazie
darkeric
Profilo
| Senior Member
211
messaggi | Data Invio:
ven 29 lug 2011 - 09:27
Ciao Mazinga
dai un occhio anche qui se vuoi
http://javascript.html.it/guide/leggi/168/guida-jquery/
Programmatore per passione!
mazinga76
Profilo
| Newbie
10
messaggi | Data Invio:
ven 29 lug 2011 - 10:04
grazie
vado subito a leggere la guida
alx_81
Profilo
| Guru
8.814
messaggi | Data Invio:
ven 29 lug 2011 - 10:14
>grazie
>vado subito a leggere la guida
appena riesco ti faccio un file semplice in cui, al click di un button appare un div con due pulsanti.
Al no si chiude il popup, e al sì lancio una chiamata ajax che torna il contenuto che metterò in un alert.
ti può bastare?
--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT
http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
mazinga76
Profilo
| Newbie
10
messaggi | Data Invio:
ven 29 lug 2011 - 11:08
il problema e che l'alert deve partire non associato ad un click ma se si verifica il fatto che il controllo (lato codice tramite reader sql) della presenza dell'elemento di un id prodotto su unaq tabella da esito positivo...
In piu' l'applicazione deve rimanere in stand-by finche' l'utente non clicca su uno dei due tasti quindi mi serve anche leggere quale taso abbia cliccato in modo da definire se annullare l'opearzione di cancellazione o se cancellare....
grazie mille in anticipo
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !