Domanda

OK, non sono sicuro che il titolo sia del tutto accurato, aperto a suggerimenti!

Sto creando un controllo personalizzato ASP.NET, questo è qualcosa che è ancora relativamente nuovo per me, quindi per favore abbi pazienza.

Sto pensando al modello degli eventi.Poiché non utilizziamo i controlli Web, non vengono attivati ​​eventi dai pulsanti, piuttosto li chiamo manualmente __doPostBack con le opportune argomentazioni.Tuttavia, ciò può ovviamente significare che si verificano molti postback quando, ad esempio, si selezionano le opzioni (che vengono visualizzate in modo diverso quando selezionate).

Col tempo, dovrò renderlo più Ajax-y e reattivo, quindi dovrò modificare l'associazione dell'evento per chiamare Javascript locale.

Quindi, stavo pensando che dovrei essere in grado di attivare/disattivare la "modalità" del controllo, può utilizzare il postback e gestire se stesso oppure è possibile specificare i nomi delle funzioni Javascript da chiamare anziché doPostBack.

  • Quali sono i tuoi pensieri a riguardo?
  • Mi sto avvicinando alla generazione degli eventi dal controllo nel modo sbagliato?(totalmente aperto ai suggerimenti qui!)
  • Come affronteresti un problema simile?

Modifica - Per chiarire

  • Sto creando un controllo personalizzato (ad es.eredita da WebControl).
  • Non utilizziamo controlli Web esistenti poiché desideriamo il controllo completo sull'output renderizzato.
  • Per quanto ne so, l'unico modo per far sì che si verifichi un evento lato server da un controllo renderizzato personalizzato è chiamare doPostBack dagli elementi renderizzati (correggere se sbagliato!).
  • ASP.NET MVC non è un'opzione.
È stato utile?

Soluzione 2

Ho approfondito ulteriormente questo argomento e ho scoperto come iniettare Javascript nel client quando richiesto.Ciò ovviamente giocherà un ruolo importante nel rendere i controlli più reattivi e meno viaggi di andata e ritorno verso il server.

Per esempio: RegisterClientScriptBlock.

Non vedo l'ora di giocare ancora con questo, sentiti libero di coinvolgere le persone!

Altri suggerimenti

Molto strano.Utilizzi controlli server ASP.NET e controlli personalizzati, ma non usi controlli Web?E stai chiamando __doPostBack manualmente?

Ti piace fare le cose nel modo più difficile?

Se stessi ancora utilizzando il modello di controllo del server anziché MVC, avrei schiaffeggiato i controlli ASP.NET Ajax su quel cretino e lo avrei chiuso.Quello che stai facendo è come mettere un ventilatore su un modello T.Può essere divertente e interessante, ma dopo aver finito con tutto il duro lavoro, cosa hai veramente?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top