Lubię the answer @jfl gives i jest przydatna do podjęcia że dea i przedłużyć go do ładnej konfiguracji wielokrotnego użytku.
Dlaczego? Istnieje kruchość w śledzeniu tego, co jest porządkowe w kolumnie, którą trzeba ukryć.Oznacza to, że odpowiedź @ jfl ma wartość tylko dla pierwszego zestawu pól/kolumny, a nawet the version in my quick comment wymaga, aby kolejność i potencjalnie liczba kolumn nie uległa zmianie.
Zamiast tego można ujednolicić sposób ukrywania kolumn, umieszczając właściwość w deklaracji kolumn, a następnie sprawdzając, czy zawiera ona obsługę zdarzeń edit
, która jest wywoływana po wyświetleniu okna podręcznego. Otrzymasz odwołanie do pełnej deklaracji columns
w wydarzeniu edit
, więc mamy dużą elastyczność.
Mam a full example at this fiddle, ale tutaj jest to w skrócie:
Dodałem właściwość hideMe
w deklaracjach kolumna:
columns: [
{ field: "name" },
{ field: "position" },
{
field: "age",
hideMe: true // <<< This is new.
},
{ command: "edit" }
],
Następnie, opierając się na komentarzu odpowiedź & wspomniano wcześniej mam to w moim edit
obsługi:
e.sender.columns.forEach(function (element, index /*, array */) {
if (element.hideMe) {
e.container.find(".k-edit-label:eq(" + index + "), "
+ ".k-edit-field:eq(" + index + ")"
).hide();
}
});
Nie więcej kolumna porządkowa śledzenie potrzebne. Możesz dodawać kolumny, zmieniać zamówienia, ukrywać nowe, cokolwiek, zmieniając to, co ma na sobie hideMe
. (Patrząc wstecz, pewnie powinien był nazywany że hideMeOnEdit
, ale masz rację.)
Ta odpowiedź jest bardziej precyzyjna. –
"Dlaczego dokładniejsze?" ty pytasz? W wyskakującym okienku, 'k-edit-label' i' k-edit-field' są pierwszymi dwoma dziećmi rodzica 'div' z klasą' k-edit-form-container'. ** W przypadku szablonów niestandardowych nie ma gwarancji, że pierwsze 'wejście' jest tym, co chcesz ukryć! ** Ponieważ to pierwsze" wejście "(lub jakikolwiek szablon wymaga) jest * w * pierwszym' k-edit-field 'div, selektor tej odpowiedzi ma mniejszą liczbę przypadków. Możesz także użyć selektora z zerowym indeksowaniem jQuery's ': eq (n)' aby ukryć, powiedzmy, trzecią etykietę i pole (zwróć uwagę na selektor "lub"): 'e.container.find (". K-edit-label: eq (2), .k-edit-field: eq (2) "). hide();' – ruffin