Ajax v moji komponenti

Že dve uri in pol prebiram http://ajax.asp.net/docs/default.aspx , vendar še nisem našel kar iščem. Naredil sem svojo komponento iz nule, ki vsebuje en <input> lement in en table. Na table click sem naredu JS funkcijo ki kliče postBack. Sedaj pa bi rad, da bi se na button klicol AjaxPostBack in dobil nazaj neko vrednost, to vrednost, ki bi jo JS funkcija dobila od MojeKomponente, pa bi zapisal v <input> element. (document.getElementById(id_inputa_moje_komponente).value = vrednost_ki_jo_je_vrnil_ajax_callback. Kaj bi vračalo pa bi bilo zapisano v moji funkciji. Recimo čas. (banalni primer)
Avtor: fora, objavljeno na portalu SloDug.si (Arhiv)

Leave a comment

Please note that we won't show your email to others, or use it for sending unwanted emails. We will only use it to render your Gravatar image and to validate you as a real person.

fora
fora - četrtek, 11. januar 2007

Ne nisva se razumela. To kar si ti napisol, mi je že vse uspelo po googlat in narest, ter dela. Vendar to je postBack, jest pa bi rad AJAXCall.Primer: http://www.codeproject.com/aspnet/ajaxdropdownlist.aspali pa tukaj:http://www.codeproject.com/Ajax/AJAXWasHere-Part1.aspRad bi naredil Ajax call back z JAVASCRIPTOM, pa da bi padel v neko metodo v moji komponenti. Če pa to ni možno, pa bi rad padel v nek event, ki bi ga na aspx file-u assign-al na tej komponenti.&nbsp;

bojanv
bojanv - četrtek, 11. januar 2007

Ne vem točno, kako si se lotil, mogoče kaj kode ne bi bilo slabo dodat , drugače pa izkoristi od ClientScript property-a lastnost Page.ClientScript.GetPostBackEventReference. Potem preveri, če si prvič na strani ( !IsPostBack ), nastavi skripto, jo registriraj Page.ClientScript.RegisterStartupScript, mu podaj kot parameter svojo kontrolo, skripto,dovoli tage, če jih ma&scaron;. Na koncu (ker ima&scaron; &scaron;e javascript) z instanco ScriptManagerja dodaj referenco na skripto. scriptManager.RegisterScriptReference(ResolveClientUrl(&quot;~/JS/MojaKnjiznica.js&quot;)); Vse to pa naredi v PreRender eventu. Da povzamem vse v kodo (tole je samo primer):public class LocationControl :&nbsp; Control, IPostBackEventHandler {protected override void OnPreRender(EventArgs e) {&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; base.OnPreRender(e);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Page.ClientScript.GetPostBackEventReference(this, String.Empty);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (!Page.IsPostBack) {&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string script = &quot;window.location.href=&nbsp; &quot;nekiPage.aspx?ID=&quot; + NextPageURL;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Page.ClientScript.RegisterStartupScript(typeof(LocationControl), String.Empty, script, /* addScriptTags */ true);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ScriptManager scriptManager = ScriptManager.GetCurrent(Page);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (scriptManager == null) {&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; throw new InvalidOperationException(&quot;Nikjer ni script managerja&quot;);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; scriptManager.RegisterScriptReference(ResolveClientUrl(&quot;~/JS/Library.js&quot;));&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }}&nbsp;&nbsp;Al sem totalno zgre&scaron;il?&nbsp;