Introducción
Editar información de un registro puede implicar el navegar de una pagina hacia otra, pero también podría aplicarse otras técnicas como ser el desplegar un dialogo que facilite esta tarea al usuario
Implementado AutoCompleteExtender
La búsqueda rápida de un cliente por medio de la aproximación mientras se va escribiendo consta de dos parte, una en el html donde se vincula los controles asp.net con el AutoCompleteExtender, definiendo en este tres propiedades importantes: TargetControlID, ServicePath y ServiceMethod
<div id="search" style="width:100%;height:100%"> <div class="row"> <div class="cell searchcell"> <asp:Label ID="Label1" runat="server" Text="Nombre Compañia:"></asp:Label> <asp:TextBox ID="txtCustomer" runat="server" Width="200px" /> <asp:AutoCompleteExtender ID="aceCustomer" runat="server" TargetControlID="txtCustomer" ServiceMethod="GetCustomerList" ServicePath="Default.aspx" MinimumPrefixLength="2" CompletionInterval="1000" EnableCaching="true" CompletionSetCount="12" /> </div> </div> <div class="row"> <div class="cell searchcell" style="text-align:right;"> <asp:Button ID="btnFiltrar" runat="server" Text="Filtrar" CssClass="button" onclick="btnFiltrar_Click" /> </div> </div> </div>
Es por eso que en la pagina se define el código del servicio encargado de retornar la lista de string de respuesta.
[WebMethod] [ScriptMethod] public static string[] GetCustomerList(string prefixText, int count) { string[] list = CustomerRepository.GetCustomer(prefixText, count) .Select(x => x.CompanyName) .ToArray(); return list; }
Implementando ModalPopupExtender
Como en este caso es necesario realizar la carga de datos en los controles que formaran el dialogo de edición se deberá realizar un postback al servidor en un evento previo a mostrar el popup.
Para poder llevar esto a cabo se requiere adaptar el modalpopup, asignando el target a un control hidden para poder engañarlo y así dejar libre la acción del gridview.
Al realizar esto se podrá controlar desde el servidor cuando se desplego el dialogo, desde el evento del gridview se realizara la carga de la info en el panel para terminar con el show del dialogo.
protected void gvOrders_SelectedIndexChanging(object sender, GridViewSelectEventArgs e) { int OrderId = Convert.ToInt32(gvOrders.DataKeys[e.NewSelectedIndex].Value); InitializeEditPopUp(); LoadEditData(OrderId); mpeEditOrder.Show(); }
El resto del ejemplo lo compone el dialogo de edición, en este caso no se hiso uso de tabla html, sino que se opto por usar css tables.
Persistencia
Para guardar y recuperar la información de la base se hace uso de Entity Framework Code First, se utiliza este por lo practico de su uso.
No se pone aquí la definición de todas las clases del dominio ya que puede descargarse el código para un mayor detalle, pero si se plantea la definición del mapeo para que pueda observarse lo simple que este queda.
public class NorthwindContext : DbContext { public NorthwindContext() : base("Northwind") { Database.SetInitializer<NorthwindContext>(null); } protected override void OnModelCreating(DbModelBuilder modelBuilder) { modelBuilder.Entity<Order>() .HasKey(x => x.OrderID); modelBuilder.Entity<Order>() .HasOptional(x => x.Customers) .WithMany(x=>x.Orders) .HasForeignKey(x=>x.CustomerID); modelBuilder.Entity<Order>() .HasOptional(x => x.Shipper) .WithMany(x=>x.Orders) .HasForeignKey(x=>x.ShipVia); modelBuilder.Entity<Order>() .HasOptional(x => x.Employees) .WithMany(x => x.Orders) .HasForeignKey(x => x.EmployeeID); modelBuilder.Entity<Customer>() .HasKey(x => x.CustomerID); modelBuilder.Entity<Product>() .HasKey(x => x.ProductID); modelBuilder.Entity<Shipper>() .HasKey(x => x.ShipperID); modelBuilder.Entity<Employe>().ToTable("Employees"); modelBuilder.Entity<Employe>() .HasKey(x => x.EmployeeID) .Ignore(x=>x.FullName); } public DbSet<Customer> Customers { get; set; } public DbSet<Order> Orders { get; set; } public DbSet<Shipper> Shippers { get; set; } public DbSet<Product> Products { get; set; } public DbSet<Employe> Employees { get; set; } }
Problemas encontrados
Durante la realización del articulo encontré algunos problemas que podrían considerarse como tips a tener en cuenta.
ReadOnly en TextBox con CalendarExtender
Para permitir al usuario seleccionar una fecha se hace uso de CalendarExtender, algo que se quería evitar es el por escribir, por eso se asigno la propiedad ReadOnly="true", el resultado de esto fue que el control no tomaba la selección de la fecha cuando se lo consultaba en el evento del server.
Se debió quitar el ReadOnly para que el control volviera a funcionar
Controles de Validación
Para la validación de algunos controles se hizo uso de controles de asp.net, los cuales se encontraban dentro del Panel que se despliega en el popup. El uso de estos controles hacia que eventos no se lanzaran.
El problema se debía que los controles de validación dentro del modalpopup no tener el mismo nombre en la propiedad ValidationGroup, solo fue cuestión de asignar un mismo nombre de grupo y se resolvió.
Código
Para el ejemplo se hace uso de Visual Studio 21010, la base de datos es Sql Compract 3.5
Hola Leandro. Mi nombre es Bruno y estoy creando un Framework para el desarrollo de aplicaciones web en .NET.
ResponderEliminarMi objetivo es, a través de este Framework, llegar a desarrollar una aplicación entera sin el uso de un solo Postaback. Te invito a que sigas mi blog para que compartamos la experiencia.
Saludos
Bruno
hola monimisi
ResponderEliminarsi lo que planteas esta interesante
no has evaluado investigar por el lado de jqGrid o jTemplate para programar muchio mas orientado a jquery
esto permite realizar aplicacion que no usen ningun evento de asp.net y puedas controlar completo como recibes y envias los datos, mas que nada usando $.ajax
estaba justo armando un articulo sobre esto, igual va a contener un mix con evento asp.net, pero podria servir de guia
mi idea es ir mas a asp.net mvc, he ir dejando asp.net, creo que para erradicar el tema del postback no hay mejor que mvc, las implementaciones quedan bien limpias
saludos
hola que tal estoy desarrollando en asp .net y lo que tengo es que el popup no se muestra en iPad en el pc funciona sin problemas podrias orientarme ???
ResponderEliminarhola
ResponderEliminarestas sobre que browser se visualiza la pagina?
lo pregunto porque no todos soportan la funcionalidad completeta de javascript
no has evaluado crear un popup con jquery UI Dialog, este tiende a ser mas compatible
saludos
hola estimado, una gran consulta como podria hacer para poder abrir ese poppup y que permita hacer una busqueda en dicho poppup que me muestre en una grilla el resultado de la busqueda y luego selecciono una fila del poppup y que me retorne a la ventana padre lo estoy intentando y no me sale por favor ayudaaa
ResponderEliminarhola Oscar
ResponderEliminarpodrias dentro del popup usar el UpdatePanel dee sta forma lanzar un evento que busque y filtre los datos del grid que tiene el propio popup
no se cerrara el dialogo porque el UpdatePanel evitara el refresco de la pagina, solo actualizara el grid que estara dentro del popup
saludos
esta bueno donde puedo bajar el codigo fuente para ver su funcionamiento
ResponderEliminarfreddy
hola Freddy
ResponderEliminaral final del articulo esta la seccion de codigo donde puedes descargarlo
saludos
Hola leandro mi nombre es ChriZ tengo un jq colorbox modalidad popup y me pasa lo que mencionas en tu post que cuando abro asocia un control que tengo dentro de tipo dropdownlist al javascript y no me permite entrar al evento selected indexchanged, como podria desasociar el javascript puesto que ahi no existe la propiedad TargetcONTROLid.. Muchas Gracias
ResponderEliminarhola ChriZ
ResponderEliminarno se si entendi el planteo
tienes un dropdownlist que no lanza el evento SelectedIndexChanged al servidor ?
si es asi asignaste la propiedad AutoPostBack = true
saludos
Efectivamente tenia un dropdownlist en un jq colorbox pero me daba muchos problemas asi es que decidi hacerlo con este control de ajax lo invoco al hacer click en un boton y me funciona perfecto, el problema esta cuando le doy click en salir o actualizar y vuelve a la pagina padre mis botones ya no esta entrando a los eventos, alguna idea de como solucionarlo. Gracias de antemano
ResponderEliminarhola
ResponderEliminarla verdad no se que sera este jq colorbox que comentas, la verdad no lo he usado nunca
saludos
en realiodad como te comentaba ya no estoy usando eso del jq colorbox, estoy usando lo que planteas aqui, y como te decia el problema esta cuando le doy cli en el boton salir del mpe es decir cuando se dispara el evento click del boton cerrar (.hide()), es decir cuando retorna a la pagina padre al hacer clic en cualquier boton ya no realiza ninguna accion, es decir no entra al codigo del evento.... Alguna idea porfa... gracias
ResponderEliminarleandro, para ser mas exacto estuve indagando sobre mi problema y vi que el error es con el toolscriptmanager, me bota error de control nullexception createdpanel[2], vi una posible solucioj de poner el scriptmode=release pero no ha funcionado, te sucedio algo similar???
ResponderEliminarhola ChriZ
ResponderEliminarla verdad no recuerdo algo similar a lo que comentas
aunque parece ser por el mensaje de error que fala algo de javascript en el cliente
lo que no entiendo es que sera este createdpanel, de casualidad usar algun control de ajax toolkit como ser un Tabcontrol o similar?
para encontrar el problema podrias ir simpleficando la pagina quizas quitando funcionalidad y probando hasta ver que control es el que genera conflicto
saludos
Hola Leandro es posible abrir una ventana popup desde otro popup con el metodo que planteas.
ResponderEliminarhola DYAGO
ResponderEliminarse deberia poder, aunque se que hay unos temas de superposicion que deben definirse mediante estilos
http://social.msdn.microsoft.com/Forums/es-ES/netfxwebes/thread/ea0e3c35-adc2-4333-941a-adeda1315272
saludos
HOLA LEAndro buen dia... tengo una consulta que tarda entre 6 y 8 segundos loesmuestro en un gridview,, pero me gustaria poner un popup de "cargando" mientras hace la consulta.
ResponderEliminarhice algo similar al ejemplo pero no muestra nada.. o alguna idea
hola germanRive
ResponderEliminarpodrias usar el UpdateProgress
[How Do I:] Use the ASP.NET AJAX UpdateProgress Control?
aunque quizas para esto tengas que tambien utilizar el UpdatePanel
saludos
Hola Leandro
ResponderEliminarEstoy intentando adaptar tu código a mi proyecto. No consigo abrir el popup haciendo clic en el dibujito del lápiz si lo he conseguido haciendo un botón nuevo y cambiando el TargetControlID al id del botón.
¿Tienes idea por que lo hace?
A parte de esto, ¿conoces a alguien que lo haya conseguido traducir al VB?
Un saludo, Jaume
hola Jaume
ResponderEliminaren el grid defines un CommandName al icono del lapiz que esta dentro del grid ?
si es asi defines tambien el evento SelectedIndexChanged
porque debe darse un postback para que el dialogo se muestre, ya que al ir al servidor este indica el Show()
saludos
Hola Leandro.
ResponderEliminarSi defino un CommandName al icono del lapiz que está dentro del grid, pero no el evento SelectedIndexChanged.
Me he centrado mucho en tu ejemplo (problema está en c# y me cuesta un poco). Lo he traducido a Vb con el SharpDevelop pero me da problemas que posiblemente no tengan nada que ver con ello.
El error es: "No se encuentra el proveedor de datos .NET Framework solicitado. Puede que no esté instalado." que sale despues de ponerle "hi" en nombre de compañia.
Yo uso Visual Web Developer 2010 y SQLExpress Edition 2008.
Un saludo, Jaume
hola Jaume
ResponderEliminarsi defines un CommandName con el texto Select esto lanzara el evento SelectedIndexChanged
alli podrias tomar la row del grid seleccionada
lo del proveedor de datos pareciera que se quiere conectar a una base de datos, quizas habria que validar el connection string
saludos
Hola Leandro.
ResponderEliminar¿Hay alguna posibilidad que puedas repasarme el código? Ahora resulta que cuando lo veo en el navegador me da un error: "Error en tiempo de ejecución de Microsoft JScript: No se puede obtener valor de la propiedad 'UI': el objeto es nulo o está sin definir", le doy al botón de continuar y me presenta el GridView y debajo el popup que debería estar oculto.
Un saludo
hola Jaume
ResponderEliminarvalidaste que los .js de las librerias de jquery y jquery UI esten cargando de forma correcta?
porque por el mensaje pareciera que alguna .js no la defines de forma correcta
puedes usar fiddler, las developer tools del IE (lo accedes con F12), o quizas firebug de firefox para analizar que .js se estan cargando en la pagina
saludos
Este comentario ha sido eliminado por el autor.
ResponderEliminarBuenos días Leandro.
ResponderEliminarEl error que me da, lo evito borrando el control asp:ModalPopupExtender y claro no hace nada mas que mostrar el grid.
Arrastro un ModalPopupExtender del cuadro de herramientas de Ajax Controltool Kit y sin configurarlo me da el error de que le falta el TargetControlID.
Lo configuro de la siguiente manera:
Y es en este momento cuando me da el error que te he comentado en el anterior comentario.
Prácticamente he copiado tu ejemplo cambiando el código C# a Vb.
Un saludo, Jaume
Leandro:
ResponderEliminar¿Por que no se ve el código que he escrito?
Jaume
hola Jaume
ResponderEliminardeberias poner el codigo como texto plano, es un editor muy simple del del blog no soporta nada complejo.
Sino deberias llevar la pregunta al foro de msdn
Ademas del error de targecontroltid no hay ningun otro que este mencionando ?
le defines un control hidden por target?
saludos
Buenas tardes Leandro:
ResponderEliminarHe cambiado de ordenador y he vuelto al antiguo y funciona perfectamente. ¿Que és? Ni idea. Ya iré buscando.
Siguiendo en la conversación del 6 he hecho lo que me dices y funciona perfectamente. Ya dispara el popup cuando pincho sobre el dibujito.
Voy a continuar porque ahora me tiene que mostrar los datos.
¿Tienes algún consejo para ello?
Muchas gracias. Jaume.
Buenos días Leandro:
ResponderEliminarCuando clicas sobre el icono en el gridview para editar el registro en el popup ¿Como sabe en que registro he clicado para poder editarlo?
Te recuerdo que no uso SQL Server sino BD de Access con Vb.
Antes de hacer el show() debo pasar los datos del registro a las variables del formulario popup. Lo he probado con varialbes fijas de texto y me va bien. Ahora me falta capturar las del registro de la tabla.
Gracias, Jaume
hola Jaume
ResponderEliminarveras en el evento SelectedIndexChanged del gridview la linea:
int OrderId = Convert.ToInt32(gvOrders.DataKeys[e.NewSelectedIndex].Value);
esa es la que usa para conocer cual es el id del registro seleccionado que debe editar
saludos
Buenos días Leandro:
ResponderEliminarEn Vb, ¿Como hago para que cuando pulso el botón de aceptar en el popup me actualice el grid al que regreso?
Gracias, Jaume
hola Jaume
ResponderEliminarsi revisas el articulo veras el evento btnActualizar_Click
en este invoca al LoadGridOrder() para recargar el grid luego de insertar la orden
saludos
Buenos días Leandro.
ResponderEliminarEn el LoadGridOrder() se ejecutan dos órdenes, y no entiendo la primera: gvOrders.Datasource=OrderRepository.GetOrdersByCustomer(txtCustomer.Text)
Comentarte que uso una tabla en una bdaccess y el gridview funciona con un ADT a la tabla, por si cambia algo.
Gracias
hola Jaume
ResponderEliminarlo que haces alli es consultar al repositorio o sea a la base de datos para que devuelva una lista de ordenes de compra y en la misma operacion lo asignas como origen de datos al gridview
o sea recuperas de la db las ordenes y las asignas al grid para poder visualizarlas
ese repository representa la capa de datos
saludos
Buenos días, Leandro:
ResponderEliminarNO consigo actualizar el gridview cuando salgo del popup. No entiendo bien tu sistema. Te recuerdo que uso bds Acces y el AccessDataSource para los datos del GridView.
El resto lo he terminado y funciona perfectamente.
Gracias.
Hola Leandro
ResponderEliminarYo implemente el modal popup en mi sitio dentro de un boton de la master page que me muestra una tabla que se debe llenar, el problema es que cuando le doy clic en guardar dentro de la tabla de eso modal cuando hace el postback para redireccionarme a la pagina de inicio despues de haber guardado se muestra el contenido del modal popup en forma como transparente y me descompone toda mi pagina, como puedo corregir esto???? ayudaaaaaaaaaaaaa
hola Jaume
ResponderEliminarel popup lo defines dentro de la misma pagina, por lo cual tienes acceso a los metodos y controles que alli definas
si al cerrar el popup se lanza un evento al servidor alli podrias invocar el metodos que recarga el grid
en ese metodo consultarias los datoa de la db y asignarias el DataSource del gridview
saludos
hola CarIg
ResponderEliminarde casualidad la accion que describes esta enmarcada con algun UpdatePanel ?
porque si al accionar algun evento dentro del postback se actualiza toda la pagina el popup deberia perderse
es mas usar un redirect si ademas defines un UpdatePanel no esta del todo correcto
quizas deberias enviar javascriot al cliente que realice un
window.location.href = "pagina.aspx";
y asi redirecciona pero desde el cliente, esto es si hay un updatepanel
saludos
Hola Leandro!
ResponderEliminarEstoy desarrollando una aplicacion en ASP.NET que utiliza modals pop up para mostrar mensajes de informacion, error o advertencia. Ahora bien..el pop up es un panel con un label que contiene el mensaje, que le es pasado por parametro cada vez que se invoca el pop up, junto con el "estilo" de ventana a mostrar (los estilos los tengo en un css aparte).
Ahora bien, esto me funciona en algunas pagina de mi proyecto sin problemas y en otras no me muestra ni el estilo ni el mensaje del label. Si aparece el pop up.
Me olvide de comentarte que el pop up se encuentra en una master page de la cual heredan todas las paginas de mi proyecto.
Alguna idea de porque pasa este comportamiento?
Buenos días, Leandro:
ResponderEliminar¿Sería posible añadir un botón de borrado de registro al lado del que ya existe de edición?
Si es que sí, ¿dónde lo coloco y como lo lanzo?
Un saludo, Jaume
hola Leo Pino
ResponderEliminarvalidaste que la definicion del tag <link> apunta de forma correcta al css
puede que de una pagina a otra este relativo al css de forma diferente, quizas en alguna pagina uses ../ y en otro no tengas que hacerlo
usa el developer tool al cual accedes con F12 para ver que carga la pagina, o sino usa fiddler
saludos
hola Jaume
ResponderEliminarpodrias poner el boton de eliminar en el propio gridview
[ASP.NET] GridView – Edición Empleados
en el articulo explico como implementarlo
saludos
Buenos días Leandro:
ResponderEliminarTerminé el proyecto y va perfectamente.
Siguiente problema: Lo estaba haciendo aparte del proyecto principal. Ahora lo he importado dentro del proyecto principal y todo son errores. La estructura es la misma, donde se ubica, donde estan las imagenes. El fallo está en que en el código VB no reconoce los campos del código ASPx. ¿Dónde estoy fallando?
Gracias.
Buenos días Leandro:
ResponderEliminarYa funciona. El problema estaba en el "inherits" que no le ponía el nombre de la clase bien.
Muchas gracias por todo.
Buenas tardes Leandro.
ResponderEliminarPoco dura la alegría.
Estoy añadiendo controles de validación a los campos de texto (texbox)y me surge un problemilla: un campo con asp:regularExpressionValidatos funciona perfectamente. Si le pongo un dato que no se ciña a lo que le he dicho sale el mensajito.
El que no me funciona es el asp:RequiredFielValidator ya que al darle al botón aceptar para que haga los cambios aunque los campos estén vacios realiza los cambios.
Un saludo, Jaume
hola Jaume
ResponderEliminarimagino por el planteo esto lo estas realizando dentro de la ventana popup del modalpopupextender no ?
la verdad es raro que un tipo de validacion funcione y otro que deberia ser mas simple no lo haga, por lo gneerar o funcionan todas las validaciones o no funciona ninguna
verificaste que las validaciones esten dentro del updatepanel ? imagino deberian estar pero por las dudas
saludos
Buenos días Leandro
ResponderEliminarSI tengo un asp:updatepanel al principio del popup bien cerado al final. Me muevo entre los campos y si queda vacio no pasa nada, en cambio el que me obliga a escribir el nombre con un formato asp:regularExpressionValidator si que si se lo pongo mal funciona. En el boton de grabar he puesto un if page.Isvalid then y tampoco.
Saludos, Jaume
Buenos días, Leandro.
ResponderEliminarHe encontrado el problema. No habia puesto la clausula ValidationGroup al botón y por eso no validaba.
Muchas gracias por tu atención.
hola Jaume
ResponderEliminarla verdad esta raro, porque el hecho que un tipo de control de validacion funcione y el otro no, como que no se explica
verificaste que el control de validacion este coorrectamente asignado al textbox que debe validar
veo que defines un popup en un updatepanel, pero que pasa si comentas el updatepanel, funcionan las validaciones?
si al mismo control le asignas una validacion de expression regular prueba quitarsela y solo deja la del textbox requerido
saludos
Buenos días, Leandro
ResponderEliminarGracias por tu ayuda, ya ves que sirve de algo ya que el proyecto avanza e incluso crece.
Ahora me gustaría que cuando pulso el botón de borrar registro (que ya funciona y lo borra) me salga un popup que al menos me avise de que voy a borrarlo. He creado otro panel asignado a un asp:modalpopupextender igualito que el que edito el registro, pero solo con un aviso de borrado y dos botones, aceptar y cancelar.
He cambiado los códigos para que cuando pulso el botón de borrado lance con un popup.show() el popup oculto de Acepto/Cancelo. He asignado el código de borrado de registro al evento.click del botón Acepto, pero no hace nada ya que no reconoce las órdenes donde capturo el registro, lo muevo y lo borro. ¿Se te ocurre algo?
Gracias, Jaume
hola Jaume
ResponderEliminara ese boton de "Acepto" le aplicas la misma tecnica de asignar un hidden al modalpopupextender para que habilite los eventos en el servidor ?
porque sino el popupextender solo permite definir codigo del lado del cliente con javascript
saludos
Buenos días Leandro.
ResponderEliminarSi, he creado un hidden y un modalpopupextender nuevos el cual lanzo al pulsar el boton de borrar pero si creo un codigo en la parte de vb con un if, que si es aceptar borre y si no nada, me ejecuta el nada antes de pulsar aceptar o cancelar.
Jaume
hola Jaume
ResponderEliminarno veo porque la razon del if, o sea el boton lanza el evento de borrar lo cual se debe realizar directamente
cuando se presiona el boton ya se esta aceptando, que otra confirmacion realzias para tner que implementar ese "if"
a lo sumo si se requiere una confirmacion sera con codigo javascript el cual inhabilite el postback de la accion boton delete
saludos
Buenos días Leandro.
ResponderEliminarHabía dejado a un lado este tema para pasar a otro como habrás podido comprobar con mis otras preguntas en MSDN.
Voy a empezar la explicación desde el principio ya que cuando escribo con prisas me explico muy mal.
Prefieres que siga con el tema del aviso cuando borro un registro por este blog o te lo pregunto por MSDN.
Un saludo, Jaume
hola Jaume
ResponderEliminarcreo que el foro en msdn es un mejor sitio para plantear la pregunta, mas si tienes que poner codigo o imagenes
desde aqui se complica un poco para analizar codigo
saludos
Buenas Leandro.
ResponderEliminarQuisiera hacer una pequeña consulta, ojala me puedas ayudar.
Es posible a traves de un PopUp abrir un web Forms ya creado, con sus elementos y todo?
Mucho agradecere tu respuesta.
Atte.
hola Mauricio
ResponderEliminarsi dentro del popup defines un <iframe> podrias cargar alli una pagina aspx
el tema es que de por si la pagina tiene tags html, y su propio viewstate el cual entraria en conflicto con el de la pagina base
no se puede cargar dos tag html, body, etc en el browser
por eso el iframe ayudaria en ese caso
esto es mas natural si usaras asp.net mvc ya que podrias definir un partial view y cargar esto dentro del popup de forma dinamica
saludos
Estimado,
ResponderEliminarMuchas gracias por tu respuesta, solo queria consultar por lo ultimo que me respondiste, ya que no entendi muy bien lo del partial view.
Saludos
hola Mauricio
ResponderEliminarlo del partial view lo comente si es que usabas ASP.NET MVC
para asp.net simple no aplica
o sea la version mvc de asp.net tiene soporte para realizar lo que planteas, pero asp.net no es tan directo
ojo se podrian simular vistas parciales si renderizas User Control dentro del popup
saludos
Como le hago para agregarle un scroll en el popup?
ResponderEliminarhola Manuel
ResponderEliminardentro del popup podrias definir un div con otro div dentro para asi asignar el estilo
Ejemplo de Scroll en div overflow
saludos
Oye Leandro una pregunta, Como hago para que ASP me reconozca ToolkitScriptManager
ResponderEliminarMe marca:
Etiqueta de servidor 'ASP:ToolkitScriptManager' Desconocida
igual pasa con AutoCompleteExtender
ModalPopupExtender
y asi !!
hola Miguel
ResponderEliminaragregaste la referencia a las dll de ajaxtookit?
si lo hiciste valida que sea una de las ultimas versiones, porque este componente no existia en las versiones de ajaxtookit mas antiguas
recuerda ademas definir la linea
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp" %>
que podras ver al principio del aspx
saludos
ok ya lo resolví, pero ahora me marca un error en todos los proyectos en las paginas maestras !!
ResponderEliminarhttps://lh4.googleusercontent.com/-u77RH6BG8fI/Uq-jTDeLVLI/AAAAAAAAAvI/xVB7uX00OhI/w955-h575-no/Sin+t%25C3%25ADtulo.png
hola Miguel
ResponderEliminarusas algun plugin para el VS que valide sintaxis o te ayude a refactorizar el codigo estilo ReSharper ?
lo pregunto prque el Vs no tiene la funcionalidad de mostrar los mensajes de error de javascript alli donde lo estas visuaalizando en la imagen
pareciera que algo esta comprobando sintaxis de javascript, pero no veo que sea algo del VS
ademas marca error de javascript, peor no veo alli que definas codigo cliente o la referencia a algun .js, o quizas este definido mas abajo en la master page
saludos
Me sirvió mucho los tips, ya q los controles de validación me daban problemas al intentar hacer un postback desde el modal pop up.... muchas gracias...
ResponderEliminarfue de mucha ayuda
buen día Leandro..
ResponderEliminartengo un archivo con código jQuery donde utilizo algunas funciones para mostrar u ocultar algunos divs de acuerdo a la información que el usuario selecciona en un DropDownList de asp.net el caso es que cuando utilizo controles de servidor no funciona mi código JQuery pero cuando utilizo controles de HTML funciona perfectamente igual si pongo el atributo runat="server" en los controles HTML no funcionan las funciones de JQuery no se a que se deba esto. la referencia al archivo la hago en el masterPage de la siguiente forma: src="<%= ResolveUrl("~/Scripts/myCode.js") %>"
y este es un ejemplo del código que tiene el archivo
$("<%=#ddlEstatus%>").change(function () {
if ($("#ddlEstatus").val() == 163) {
$("#pnCierreCarpeta").show("swing");
} else {
$("#pnCierreCarpeta").hide("swing");
$("#pnOtroCierreCarpeta").hide("swing");
}
});
espero y me puedas ayudar.. gracias..
Estimado Leandro, tengo un problema en el boton actualizar, quiero mostrar una confirmación para realizar la actualización:
ResponderEliminaronclick="return confirm('confirma actualización?')"
Como podría hacerlo.
Saludos
EHN
hola Pepe
ResponderEliminares un boton de asp.net ? porque si es asi deberias usar el
OnClientClick
alli es donde defines el javascript para que ejecute la accion e el cliente antes de invocar el click que envia el post al evento en el servidor
saludos
Leandro, veo que llamas al popup desde el server mediante la sentencia mpeEditOrder.Show(), ya que la etiqueta es de asp:ModalPopupExtender.
ResponderEliminarYo tengo el control de ajax toolkit, es decir mi etiqueta es cc1; dime la llamada desde el server seria igual? reconocera mi asp a dicho control en el codebehind?
Saludos.
hola
Eliminarsi es exactamente igual, el uso de asp o cc1 es el namespace con el cual defines el prefijo que registra el control en el html
esa linea del Show() la ejecutas desde codigo .net asociado a la pagina
saludos
Leandro, y como le hago para obtener el código del cliente seleccionado para posteriormente guardarlo, porque lo que puedo entender es que solo trae los nombre de los cliente.?
ResponderEliminarhola
Eliminarno entendi el planteo, te refieres a la edicion o a la implementacion del filtro ? si necesitas enviar mas de un dato selecionado a la pagina padre podrias hacerlo
saludos
En la Implementado AutoCompleteExtender el TextBox ID="txtCustomer" es el control del cliente el cual completas desde el webMethod llamado "GetCustomerList", pero como obtengo el código de dicho cliente para poderlo posteriormente guardarlo en la base de dato?
EliminarGracias.
hola
Eliminarlo mas cercano que pude ver respecto a este tema seria
Retrieving autocompleteextender's selected item ID
saludos
hola
ResponderEliminarDisculpa existe una forma de bloquear ciertos días en los calendarexterder??? Estoy haciendo una aplicación en donde es necesario colocar este tipo de calendario pero me solicitan que por ejemplo todos los sábados y domingos y algunos días festivos esten inhabilitados en los calendarios
hola
ResponderEliminarcon codigo javascript podrias deshabilitar esos dias
Disable weekends for AjaxToolKit Calendar extender
saludos
Buenos días Leandro.
ResponderEliminarEstoy usando este código desde hace un año sin ningún problema, WVista y IE9 en los puestos de trabajo. Ahora nos han suministrador PCs nuevos y llevan W8.1 y IE11. El problema que me surge es que no se ve correctamente con dicho navegador hasta que le activas la "Vista de compatibilidad", pero por políticas de mi empresa no puedo tenerla activada. ¿Cómo puedo solucionarlo? He instalado en .NET Framework 4.5 en los servidores web y sigue igual.
Muchas gracias.
hola
Eliminarrespondi en el foro
PopUp Edición - Usando Ajax Toolkit ModalPopupExtender
saldos
hola te comento estoy utilizando un ModalPopupExtender para mostrar que han ingresado correctamente la información de mi pagina pero al implementar este popup no se ejecuta mi boton guardar y se activa directo el popup me puedes ayudar gracias.
ResponderEliminarcodigo del popup y boton aceptar
asp:ModalPopupExtender ID="ModalPopupExtender1" runat="server" PopupControlID="pnlpopup" TargetControlID="bntsalvar" OkControlID="bntaceptar" BackgroundCssClass="modalBackground" DropShadow="true"//Confirmación de Datos
center style="color: #FFFFFF"> Los datos han sido ingresados correctamente
asp:Button runat="server" ID="bntaceptar" CssClass="btn-warning focus" Text="Aceptar"
codigo del boton guardar
/*
*/
protected void bntsalvar_Click(object sender, EventArgs e)
{
tic.Makana_v3_ingresar_historial( codigo,ddlpersona.SelectedItem.ToString(),int.Parse(ddlpersona.SelectedValue.ToString()),int.Parse(ddlunidad_reg.SelectedValue.ToString()),ddlunidad_reg.SelectedItem.ToString(),txtasunto.Text,Convert.ToDateTime(txtfeccumplimiento.Text),txtusuario.Text);
}
gracias por tu respuesta
hola
EliminarPara que lance el evento al servidor tienes que definir como TargetControlID un control hidden, entocnes el Show() del popup podras hacerlod esde codigo
Analiza este ejemplo porque lo explico
saludos
muchas gracias por tu guía voy a revisar lo que me comentas, adicional em indicas que en luego de:
Eliminartic.Makana_v3_ingresar_historial( codigo,ddlpersona.SelectedItem.ToString(),int.Parse(ddlpersona.SelectedValue.ToString()),int.Parse(ddlunidad_reg.SelectedValue.ToString()),ddlunidad_reg.SelectedItem.ToString(),txtasunto.Text,Convert.ToDateTime(txtfeccumplimiento.Text),txtusuario.Text);
mande a llamar el popup? en código de C#? y si es asi me puedes orientar como puedo buscar lo que me comentas.
Nuevamente gracias por tu ayuda
Hola Leandro, es posible que vuelvas a subir este ejemplo [ASP.NET] PopUp Edición - Usando Ajax Toolkit ModalPopupExtender el link de descarga no aparece.
ResponderEliminarGracias.
hola
EliminarPude descargar el ejemplo sin problemas, quizas sea un problema momentaneo con onedrive, o quizas sea un problema con el browser, quizas si usas IE.
saludos
Hola Leandro. Por favor, como hago para evitar la reapertura de una ventana usando el ModalPoPupExtender al pulsar F5 en el navegador? Mucas gracias.
ResponderEliminarhola
EliminarSi la apertura del popup la realizas desde codigo servidor usando el Show() este se ejecutar porque el refresh del browser envia al servidor el ultimo post que se realizo. No se puede evitar esa accion a menos que despues del post realicen un redirect, pero en tu caso al ejecutar un popup no seria una alterntiva. Podrias mostrar el popup usando javascript.
saludo
Perfecto Leandro. Muchas gracias.
EliminarHola,
ResponderEliminarTengo un problema, cuando seleccionó un valor del AutoCompleteExtender me desaparece el modalpopup y tengo que volver a oprimir el botón para poder visualizar los datos, espero me puedas ayudar a resolver este problema
Mis respetos, justo lo que andaba buscando y lo mejor, se ve muy bien ! Gracias por compartir !
ResponderEliminar