» »

Masterpage in jQuery(ajax call)

Masterpage in jQuery(ajax call)

nuclear ::

S pomočjo jquery, želim prenesti podatke v bazo.. Postopam takole:

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 ()

nuclear ::

... Nben?
Asus G14 2023 - Ryzen 7940HS - 32GB DDR5 - GeForce RTX 4080 - 990 PRO 4TB

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()

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:
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.

hatchette ::

Namesto aspx-ov uporabi webservice (asmx)

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 ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

backbone.js

Oddelek: Programiranje
61218 (859) BigWhale
»

jquery ajax problem

Oddelek: Izdelava spletišč
81499 (1121) miko22
»

Kontakt obrazec

Oddelek: Izdelava spletišč
62079 (1924) betmen
»

[js] json kompresija

Oddelek: Programiranje
223882 (3231) infiniteLoop
»

[c#] shrani text, tabele, slike

Oddelek: Programiranje
251533 (1139) klemen93

Več podobnih tem