Pregunta

OK, no estoy seguro de si el título es completamente exacto, ¡abierto a sugerencias!

Estoy en el proceso de crear un control personalizado de ASP.NET, esto es algo que todavía es relativamente nuevo para mí, así que tengan paciencia.

Estoy pensando en el modelo de evento.Como no utilizamos controles web, no se activan eventos desde los botones, sino que estoy llamando manualmente __doPostBack con los argumentos adecuados.Sin embargo, esto obviamente puede significar que se producen muchas devoluciones de datos al seleccionar opciones (que se muestran de manera diferente cuando se seleccionan).

Con el tiempo, necesitaré hacer esto más Ajax-y y responsivo, por lo que tendré que cambiar el enlace de eventos para llamar a Javascript local.

Entonces, estaba pensando que debería poder alternar el "modo" del control, puede usar la devolución de datos y manejarse por sí mismo, o puede especificar los nombres de las funciones de Javascript para llamar en lugar de doPostBack.

  • ¿Qué piensas sobre esto?
  • ¿Estoy abordando de forma equivocada el planteamiento de los acontecimientos desde el control?(¡totalmente abierto a sugerencias aquí!)
  • ¿Cómo abordaría un problema similar?

Editar - Para aclarar

  • Estoy creando un control renderizado personalizado (es decir,hereda de WebControl).
  • No utilizamos controles web existentes ya que queremos un control total sobre la salida renderizada.
  • AFAIK, la única forma de hacer que ocurra un evento del lado del servidor desde un control renderizado personalizado es llamar a doPostBack desde los elementos renderizados (¡corrija si es incorrecto!).
  • ASP.NET MVC no es una opción.
¿Fue útil?

Solución 2

He estado investigando un poco más sobre esto y descubrí cómo inyectar Javascript en el cliente cuando sea necesario.Obviamente, esto jugará un papel muy importante a la hora de hacer que los controles respondan mejor y tengan menos viajes de ida y vuelta al servidor.

Por ejemplo: RegistrarseClientScriptBlock.

Esperamos jugar más con esto, ¡siéntete libre de involucrar a la gente!

Otros consejos

Muy raro.¿Está utilizando controles de servidor ASP.NET y controles personalizados, pero no está utilizando controles web?¿Y estás llamando a __doPostBack manualmente?

¿Te gusta hacer las cosas de la manera más difícil?

Si todavía estuviera usando el modelo de control de servidor en lugar de MVC, colocaría controles ASP.NET Ajax en ese tonto y daría por terminado el día.Lo que estás haciendo es como ponerle un soplador a un modelo T.Puede ser divertido e interesante, pero una vez que hayas terminado con todo el trabajo duro, ¿qué tienes realmente?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top