Foros del Web » Programando para Internet » ASPX (.net) »

ajaxToolkit:ModalPopupExtender y updatepanel

Estas en el tema de ajaxToolkit:ModalPopupExtender y updatepanel en el foro de ASPX (.net) en Foros del Web. Hola, espero me puedan ayudar porque me estoy volviendo loco :( Desde ya, muchas gracias! La situación es la siguiente: En un .aspx tengo: - ...
  #1 (permalink)  
Antiguo 27/12/2007, 13:12
 
Fecha de Ingreso: agosto-2007
Mensajes: 21
Antigüedad: 16 años, 8 meses
Puntos: 0
ajaxToolkit:ModalPopupExtender y updatepanel

Hola, espero me puedan ayudar porque me estoy volviendo loco :( Desde ya, muchas gracias!

La situación es la siguiente:

En un .aspx tengo:

- gridview, donde muestro una lista de productos

- botón Nuevo producto que abre un diálogo modal de ajax, solicitando el detalle del producto a incorporar

En el diálogo modal, además de los campos de texto donde se solicita el detalle del producto, existen 2 botones (guardar y cancelar).


Lo que intento es que al pulsar el botón guardar, se actualice el gridview, mostrando el nuevo producto. El problema que tengo es que he incorporado en el panel del popup un updatepanel, para evitar que me haga al pulsar Guardar un postback completo, pero entonces nunca se ejecutan los eventos del botón...Alguien sabe el motivo?


El código del html es:

<form id="form1" runat="server">
<asp:XmlDataSource ID="XmlDataSource1" runat="server" DataFile="~/products.xml">
</asp:XmlDataSource>
<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePartialRendering="true" >
</asp:ScriptManager>
<div>

<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:gridview ID="Gridview1" runat="server" AutoGenerateColumns="False" DataSourceID="XmlDataSource1">
<Columns>
<asp:BoundField DataField="productID" HeaderText="productID" SortExpression="productID" />
<asp:BoundField DataField="productName" HeaderText="productName" SortExpression="productName" />
<asp:BoundField DataField="unitPrice" HeaderText="unitPrice" SortExpression="unitPrice" />
</Columns>
</asp:gridview>
</ContentTemplate>
</asp:UpdatePanel>

<asp:Panel ID="pnlPopup" runat="server" Style="display: none" CssClass="modalPopup">
<asp:Panel ID="Panel3" runat="server" Style="cursor: move;background-color:#DDDDDD;border:solid 1px Gray;color:Black">
<div>
<p>Introduce los datos del buevo producto:</p>
</div>
</asp:Panel>
<asp:UpdatePanel runat="server" UpdateMode="Conditional" >
<ContentTemplate>
id: <asp:textbox ID="txtID" runat="server"></asp:textbox>
desc: <asp:textbox ID="txtDesc" runat="server"></asp:textbox>
precio: <asp:textbox ID="txtPrecio" runat="server"></asp:textbox>
<asp:Button Text="Guardar Cambios" runat="server" ID="btnGuardar" OnClick="guardar"/>
<asp:Button Text="Cancelar" runat="server" ID="btnCerrar"/>
</ContentTemplate>
</asp:UpdatePanel>

</asp:Panel>
<ajaxToolkit:ModalPopupExtender ID="ModalPopupExtender1" runat="server" PopupControlID="pnlPopup" TargetControlID="btnAnadir" BackgroundCssClass="modalBackground" X="200" Y ="200" CancelControlID="btnCerrar">
</ajaxToolkit:ModalPopupExtender>
<asp:button ID="btnAnadir" Text = "Añadir producto" runat="server" />
</div>

</form>


y el code-behind:
Protected Sub guardar(ByVal sender As Object, ByVal e As System.EventArgs)

Dim myxml As XmlDocument = New XmlDocument
Try
myxml.Load(Server.MapPath("products.xml"))
Catch ex As Exception
Response.Write("excepcion: " & ex.Message)
End Try
Dim myxmlrecord As XmlElement = myxml.CreateElement("product")
Dim myxmlfield1 As XmlAttribute
Dim myxmlfield2 As XmlAttribute
Dim myxmlfield3 As XmlAttribute

myxmlfield1 = myxml.CreateAttribute("productID")
myxmlfield1.Value = Me.txtID.Text
myxmlrecord.Attributes.Append(myxmlfield1)

myxmlfield2 = myxml.CreateAttribute("productName")
myxmlfield2.Value = Me.txtDesc.Text
myxmlrecord.Attributes.Append(myxmlfield2)

myxmlfield3 = myxml.CreateAttribute("unitPrice")
myxmlfield3.Value = Me.txtPrecio.Text
myxmlrecord.Attributes.Append(myxmlfield3)


myxml.DocumentElement.AppendChild(myxmlrecord)

myxml.Save(Server.MapPath("products.xml"))
myxml = Nothing


'volver a hacer el bind
'Gridview1.DataBind()

End Sub
End Class

Alguien me podría decir que hago mal?


Un millón de gracias!
  #2 (permalink)  
Antiguo 27/11/2009, 15:47
JSO
 
Fecha de Ingreso: agosto-2006
Mensajes: 1
Antigüedad: 17 años, 8 meses
Puntos: 0
Respuesta: ajaxToolkit:ModalPopupExtender y updatepanel

Buenas tardes
Me gustaría saber si pudiste solucionar el problema, en caso de que lo hayás hecho me podrías escribir a [email protected].

Mil gracias!
  #3 (permalink)  
Antiguo 30/11/2009, 13:00
 
Fecha de Ingreso: febrero-2007
Mensajes: 46
Antigüedad: 17 años, 2 meses
Puntos: 1
Respuesta: ajaxToolkit:ModalPopupExtender y updatepanel

has intentado agregando un trigger a tu update panel donde esta el gridview, quedaria algo asi:

Código:
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:gridview ID="Gridview1" runat="server" AutoGenerateColumns="False" DataSourceID="XmlDataSource1">
<Columns>
<asp:BoundField DataField="productID" HeaderText="productID" SortExpression="productID" />
<asp:BoundField DataField="productName" HeaderText="productName" SortExpression="productName" />
<asp:BoundField DataField="unitPrice" HeaderText="unitPrice" SortExpression="unitPrice" />
</Columns>
</asp:gridview>
</ContentTemplate>
<Triggers>
        <asp:PostBackTrigger  ControlID="btnGuardar"/>
</Triggers>
</asp:UpdatePanel>
asi cuando le piques al boton btnGuardar se actualizaria el updatepanel o igual podrias actualizar el panel asi:


UpdatePanel1.Update

dentro del evento de tu boton


Saludos..
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:14.