Forum » Programiranje » Masterpage in jQuery(ajax call)
Masterpage in jQuery(ajax call)
nuclear ::
S pomočjo jquery, želim prenesti podatke v bazo.. Postopam takole:
Problem ni v kodi, problem je v tem, da deluje triggera vse lepo če naredim eno webformo.aspx.
Takoj ko hočem implementirat v projekt z masterpage, pa stvar neče in neče da deluje.
Kako imam razporejeno:
Masterpage:
testiramsort.aspx(webforma, ki je izpeljana iz masterpage):
Še code behind za metodo SaveData(jquery preusmeri na testiramsort.aspx/SaveData). Metoda je samo za test, če trigera ali ne:
Zdej ne vem več, kaj mirko hoče nič več mi ni jasno kaj je s temi d masterpagei,... Googlam, pa ne povejo nič pametnega, razen to da naredim tako kot sem že.
Je imel kdo podobne težave s temi masterpagei? Kakšen tek naokoli?
function update() { var list = new Array(); $("ul").each(function(index, id) { var result = $('#' + id.id).sortable('toArray'); var j = 0; for (var i = 0; i < result.length; i++) { list[j++] = $('#' + result[i])[0].value; } }); var jsonText = JSON.stringify({ list: list }); $.ajax({ type: "POST", url: "testiramsort.aspx/SaveData", data: jsonText, contentType: "application/json; charset=utf-8", dataType: "json", success: function(res) { $("#divResult").text(res.d); } });
Problem ni v kodi, problem je v tem, da deluje triggera vse lepo če naredim eno webformo.aspx.
Takoj ko hočem implementirat v projekt z masterpage, pa stvar neče in neče da deluje.
Kako imam razporejeno:
Masterpage:
<script type="text/javascript" src="http://www.google.com/jsapi"></script> <script language="javascript" type="text/javascript"> google.load("jquery", "1.5.1"); google.load("jqueryui", "1.8.10"); </script> <script type="text/javascript" src="https://github.com/douglascrockford/JSON-js/raw/master/json2.js"></script> <asp:ContentPlaceHolder ID="head" runat="server"> </asp:ContentPlaceHolder>
testiramsort.aspx(webforma, ki je izpeljana iz masterpage):
<asp:Content ContentPlaceHolderID="head" runat="server"> <SCRIPT type=text/javascript> $(function() { $("#sortableslike").sortable(); $("#sortableslike").disableSelection(); }); function update() { var list = new Array(); $("ul").each(function(index, id) { var result = $('#' + id.id).sortable('toArray'); var j = 0; for (var i = 0; i < result.length; i++) { list[j++] = $('#' + result[i])[0].value; } }); var jsonText = JSON.stringify({ list: list }); $.ajax({ type: "POST", url: "testiramsort.aspx/SaveData", data: jsonText, contentType: "application/json; charset=utf-8", dataType: "json", success: function(res) { $("#divResult").text(res.d); } }); } </SCRIPT> </asp:Content> <asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server"> .........
Še code behind za metodo SaveData(jquery preusmeri na testiramsort.aspx/SaveData). Metoda je samo za test, če trigera ali ne:
[WebMethod] public static string SaveData(List<string> list) { string retResult = string.Empty; try { list.ForEach(delegate(string c) { retResult = c; }); } catch (Exception ex) { retResult = ex.Message; } return retResult; }
Zdej ne vem več, kaj mirko hoče nič več mi ni jasno kaj je s temi d masterpagei,... Googlam, pa ne povejo nič pametnega, razen to da naredim tako kot sem že.
Je imel kdo podobne težave s temi masterpagei? Kakšen tek naokoli?
Asus G14 2023 - Ryzen 7940HS - 32GB DDR5 - GeForce RTX 4080 - 990 PRO 4TB
- spremenil: nuclear ()
Gandalfar ::
> Takoj ko hočem implementirat v projekt z masterpage, pa stvar neče in neče da deluje.
To pomeni kaj? Ti rece kaksen error?
Iz tvojih snippetov kode ni razvidno kaj klice tale update()
To pomeni kaj? Ti rece kaksen error?
Iz tvojih snippetov kode ni razvidno kaj klice tale update()
nuclear ::
Ne mece errora, sam nič ne naredi.
Tkole je, na EditGallery.aspx imam gumbek Update, ki kliče metodo "update()" ob kliku.
update pa je:
Ta metoda potem posta v ta EditGallery.aspx(testiramsort.aspx pač v tem primeru) v WEB METODO id, s pomočjo katerega potem v tej WebMetodi updatamo bazo. Trenutno je web metoda prazna ker testiram če gre sploh noter...
Razumeš zdaj?
Problem je, da če naredim navadn Webform.aspx in ne uporabljam Masterpage.master dela bp.
Tkole je, na EditGallery.aspx imam gumbek Update, ki kliče metodo "update()" ob kliku.
update pa je:
function update() { var list = new Array(); $("ul").each(function(index, id) { var result = $('#' + id.id).sortable('toArray'); var j = 0; for (var i = 0; i < result.length; i++) { list[j++] = $('#' + result[i])[0].value; } }); var jsonText = JSON.stringify({ list: list }); $.ajax({ type: "POST", url: "testiramsort.aspx/SaveData", data: jsonText, contentType: "application/json; charset=utf-8", dataType: "json", success: function(res) { $("#divResult").text(res.d); } });
Ta metoda potem posta v ta EditGallery.aspx(testiramsort.aspx pač v tem primeru) v WEB METODO id, s pomočjo katerega potem v tej WebMetodi updatamo bazo. Trenutno je web metoda prazna ker testiram če gre sploh noter...
Razumeš zdaj?
Problem je, da če naredim navadn Webform.aspx in ne uporabljam Masterpage.master dela bp.
Asus G14 2023 - Ryzen 7940HS - 32GB DDR5 - GeForce RTX 4080 - 990 PRO 4TB
Zgodovina sprememb…
- spremenil: nuclear ()
Gandalfar ::
Tudi Firebug console nic ne namigne? Poglej ce imas pravilno evente povezane (kar v zgeneriranem html source) - lahko das pa kam na web tudi da sprobamo
luli ::
Imel sem podobno težavo!
Mislim, da IE deluje normalno, težave so samo v FF. Če je temu tako, je težava v stavku $("ul").each(function(index, id), konkretneje v $("ul"). Ta v kolikor se objekti ne nahajajo v masterpage ne vrača ničesar. Ker sem kot sender objekta uporabljal kar sam objekt sam, sem se težave ognil tako, da sem ob klico javascripta poslal tudi parameter sender.
Mislim, da IE deluje normalno, težave so samo v FF. Če je temu tako, je težava v stavku $("ul").each(function(index, id), konkretneje v $("ul"). Ta v kolikor se objekti ne nahajajo v masterpage ne vrača ničesar. Ker sem kot sender objekta uporabljal kar sam objekt sam, sem se težave ognil tako, da sem ob klico javascripta poslal tudi parameter sender.
hatchette ::
Namesto aspx-ov uporabi webservice (asmx)
webmethodi dodaj tele atribute
Ce ti kaj ne deluje, poglej firebug->network in poglej kaj je dejansko narobe. V primeru da dobivas internal server error 500 (brez dodatnih informacij):
edit web.config: CustomErrors nastavi na Off
webmethodi dodaj tele atribute
[WebMethod(EnableSession = true)] [ScriptMethod(ResponseFormat = ResponseFormat.Json)] public string SaveData(List<string> list) { ... } classu za webservice pa dodaj tale atribut: [ScriptService]
Ce ti kaj ne deluje, poglej firebug->network in poglej kaj je dejansko narobe. V primeru da dobivas internal server error 500 (brez dodatnih informacij):
edit web.config: CustomErrors nastavi na Off
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | backbone.jsOddelek: Programiranje | 1218 (859) | BigWhale |
» | jquery ajax problemOddelek: Izdelava spletišč | 1499 (1121) | miko22 |
» | Kontakt obrazecOddelek: Izdelava spletišč | 2079 (1924) | betmen |
» | [js] json kompresijaOddelek: Programiranje | 3882 (3231) | infiniteLoop |
» | [c#] shrani text, tabele, slikeOddelek: Programiranje | 1533 (1139) | klemen93 |