Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [HTML][JavaScript] JQGrid - Dodawanie/Usuwanie/Edycja wierszy.
Kurdtt
post 2.04.2014, 17:28:42
Post #1





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 2.04.2014

Ostrzeżenie: (0%)
-----


Witam wszystkich serdecznie,

Od razu mówię, że poznaję takie cuda jak JavaScript oraz jQuery.

Posiadam taki skrypt:

http://pastebin.com/6e66e09K

Jest to tabelka w JQGrid, która dodaje elementy w bardzo złym stylu, nie usuwa ich ani nie edytuje. Próbowałem dodawać elementy tak, jak
to sugeruje dokumentacja JQGrid, czyli:

var parameters =
{
rowID : "new_row",
initdata : {},
position :"first",
useDefValues : false,
useFormatter : false,
addRowParams : {extraparam:{}}
}

jQuery("#list").jqGrid('editGridRow', "new", properties );

i dodaje mi jedynie puste kolumny.

Jak zrobić, by zapomocą ikonki plusa dodawało rekordy, a później - by usuwało i edytowało je?

Jeżeli ktoś mógłby poświęcić choć chwilę na rozpatrzenie mego problemu - byłbym bardzo wdzięczny.

Pozdrawiam.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 8)
trueblue
post 2.04.2014, 17:49:05
Post #2





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


Może na początek dodawanie.
Dlaczego nie używasz metody addRowData (w przykładzie, który podałeś jest zakomentowana).


--------------------
Go to the top of the page
+Quote Post
Kurdtt
post 2.04.2014, 17:57:30
Post #3





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 2.04.2014

Ostrzeżenie: (0%)
-----


Gdy zakomentuje kod z append i odkomentuje właśnie z AddRowData to wtedy dodaje mi puste pola (Nota bene działa tylko wtedy, gdy z nawiasów klamrowych wyrzucę "miasto"). Kod z append wrzuca mi na żywca kod z HTML'a tj. tworzy normalny wiersz tabeli z odpowiednim CSS'em, ale nie da się później manipulować tym rekordem w żaden sposób.
Go to the top of the page
+Quote Post
trueblue
post 2.04.2014, 18:08:49
Post #4





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


  1. jQuery("#list").addRowData(rowid,data, position, srcrowid);

rowid - id wiersza,
data - obiekt zawierający nazwy kolumn i ich wartości, u Ciebie: {id: 1, miasto: 'Warszawa'}
position - z dokumentacji wynika, że: 'first', 'last' lub 'after', 'before', przy tej ostatniej parze podaje się parametr:
srcrowid - id wiersza, przed który lub po którym będzie wstawiony nowy wiersz

Ten post edytował trueblue 2.04.2014, 18:09:06


--------------------
Go to the top of the page
+Quote Post
Kurdtt
post 2.04.2014, 18:25:39
Post #5





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 2.04.2014

Ostrzeżenie: (0%)
-----


Świetnie! Dziękuje ślicznie smile.gif Dodaje tak jak trzeba, sortuje, tylko przy dodawaniu, w okienku "Dodaj rekord" wyświetla się enigmatyczny napis "Brak adresu URL."

Czy odejmowanie rekordu/usuwanie trzeba zrobić w tej samej funkcji?

Znalazłem coś takiego:

$('#item_table').jqGrid('delRowData',rowid);

Teraz pytanie: jak tego użyć?
Go to the top of the page
+Quote Post
trueblue
post 2.04.2014, 18:33:24
Post #6





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


Nie bardzo wiem o jakie okienko chodzi.

  1. $('#list').jqGrid('delRowData',rowid);

rowid - to id wiersza, który usuwasz


--------------------
Go to the top of the page
+Quote Post
Kurdtt
post 2.04.2014, 18:43:23
Post #7





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 2.04.2014

Ostrzeżenie: (0%)
-----


Moje pytanie jest następujące: jak obsłużyć te dwa przyciski?

http://wrzucaj.net/images/2014/04/02/pytanie.png

Tak, rozumiem, że usuwamy po ID, tylko jak zbudować funkcję, by ten konkretny przycisk obsługiwał to konkretne zdarzenie.
Go to the top of the page
+Quote Post
trueblue
post 2.04.2014, 18:46:08
Post #8





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


  1. $('id_przycisku').click(function(e){
  2. e.preventDefault(); //jeśli element natywnie ma jakąś akcję po kliknięciu
  3. $('#list').jqGrid('delRowData',rowid);
  4. });


Ten post edytował trueblue 2.04.2014, 18:46:15


--------------------
Go to the top of the page
+Quote Post
Kurdtt
post 2.04.2014, 19:01:34
Post #9





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 2.04.2014

Ostrzeżenie: (0%)
-----


Dotarłem, że ID tego przycisku "Usuń", który wyskakuje jest 'dData', aczkolwiek nie działa tak jak należy. W każdym bądź razie dziękuje, będe się bawił dalej. smile.gif

To może inaczej : Jak teraz wyciągnąć nazwę miasta z tej tabeli i przesłać do innego skryptu?

EDIT:

Mam już działający kod na usuwanie wiersza:

$("div.Delete").click(function(e){
var rowid = $('#list').jqGrid('getGridParam', 'selrow');
$('#list').delRowData(rowid);
});

pod warunkiem, że to jest div o id Delete. Przy linku o ID "dData" nie działa, dlatego chciałbym zapytać: czy $("a.dData").click(... jest dobrym odwołaniem, czy potrzeba jakiegoś innego?

Ten post edytował Kurdtt 2.04.2014, 20:27:22
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 25.07.2025 - 09:51