что, если в разных формах, содержащихся в разных записных книжках smartgwt, есть поле с одинаковым именем виджета

Мы разрабатываем общий клиент с использованием smartGWT. мы проектируем наше приложение так: в левой части экрана у нас есть навигатор по дереву, а справа мы отображаем форму (onClick элемента дерева) целевого элемента дерева. При отображении форм мы используем записные книжки, то есть всякий раз, когда кто-то щелкает элемент дерева, мы добавляем вкладку в записной книжке для отображения соответствующей формы. Таким образом, в DOM может существовать несколько форм одновременно.

 My query is:
 what if multiple notebooks (thus different forms) say X and Y have same-field-widget say 'name', 
 Will this cause ID conflict problem in operation like `save` or `onchange` or simply is this a good practice in smartGWT?

Note: we want to generate same ID of the widget each time we generate particular form, for some testing purpose.

person Shanta    schedule 22.11.2011    source источник
comment
Вы написали код в соответствии с вашими требованиями? Вы можете разместить это здесь?   -  person RAS    schedule 24.11.2011
comment
На самом деле, в настоящее время мы не назначали идентификатор виджету, который создается автоматически. Но, как я уже сказал, при выполнении тестирования (с использованием Selenium) я подумал, что назначение уникального идентификатора решит нашу проблему с селеном, поэтому задал эту двусмысленность.   -  person Shanta    schedule 25.11.2011


Ответы (1)


Взглянув на эту ссылку показывает, что использование одних и тех же имен атрибутов в разных формах не является нарушением передовой практики. Но в любом случае с SmartGWt, если вы запустите следующий простой тестовый код, вы увидите с помощью Firebug, что атрибуты id и name автоматически генерируются с увеличивающимися значениями, поэтому нет даже повторяющихся значений ...

public static void testMultiForms() {
    VLayout theForms = new VLayout();
    MyForm f1 = new MyForm();
    MyForm f2 = new MyForm();
    MyForm f3 = new MyForm();
    theForms.addMember(f1);
    theForms.addMember(f2);
    theForms.addMember(f3);
    RootPanel.get("container").add(theForms);       
}

public MyForm(){
    TextItem name = new TextItem();
    name.setTitle("Name");
    TextItem address = new TextItem();
    address.setTitle("Address");
    this.setItems(name,address);
}       
person Alain BUFERNE    schedule 25.11.2011
comment
да, в автоматически сгенерированном идентификаторе нет дублируемого, но у меня вопрос, что, если я назначу повторяющееся имя виджетам, содержащимся в разных формах в то время в DOM! - person Shanta; 25.11.2011
comment
Вы пробовали добавить setName ()? - person Alain BUFERNE; 26.11.2011