2015-01-21 6 views
0

Мне нужна помощь с панелью инструментов Kendo UI PanelBar.Kendo UI PanelBar Conditional Expand

У меня есть 3 секции (3 панели).

  • Группа 1
  • Панель 2
  • Группа 3

Это единственный способ расширить. Таким образом, вы нажимаете на одну панель, тогда все остальные панели рушится, а тот, который вы нажимаете, расширяется.

Однако, я хочу, чтобы добавить условие, так что если есть недостоверные данные в группе 1, то вы не можете расширить панель 2 или 3.

Как вы делаете это?

ответ

1

У вас есть событие, чтобы поймать, когда элемент panel bar расширяется, и вы можете использовать e.preventDefault():

Как это:

var onExpandEvt = function(e) { 
    // access the expanded item via e.item (HTMLElement) 
    // here you can put your verification...... 
    //if(validationFailed){ 
    // e.preventDefault(); 
    //} 
    // detach expand event handler via unbind() 
    panelBar.data("kendoPanelBar").unbind("expand", onExpandEvt); 
}; 

// attach expand event handler during initialization 
var panelBar = $("#panelbar").kendoPanelBar({ 
    expand: onExpandEvt 
}); 
+0

мне нужно приложить что-нибудь, чтобы сделать 'Html.Kendo() .PanelBar() 'бит, где я создаю панель? Проверка прошла, но затем не открыла другую панель. –

+0

Решение попадает на эту строку 'panelBar.data (" kendoPanelBar "). Unbind (" expand ", onExpandEvt);' потому что он не может прочитать данные свойства 'undefined –

+0

Это" undefined ", потому что ваш panelBar должен иметь другое имя (кстати, вы должны разместить свой код). Если у вас есть 'var panelBar = $ (" # panelbar "). KendoPanelBar ......', вы должны убедиться, что '# panelBar' является идентификатором вашей панели – chiapa

Смежные вопросы