Я занимаюсь разработкой небольшого приложения на базе Smart GWT 2.4.Я выбрал smart gwt, а не другие специфичные для html RIA, поскольку он имеет богатый пользовательский интерфейс и позволяет избежать проблем с несколькими браузерами.У меня есть 2 страницы в моем приложении.Первоначально детали, которые пользователь вводит на странице 1, используются для извлечения данных, которые должны отображаться на странице 2, и с тех пор любое изменение, которое должно быть сделано, может быть сделано на самой странице 2.пользователю не нужно возвращаться на страницу 1, чтобы получить новый набор данных.1) Теперь, как мне перемещаться между страницами.я определил эти страницы как два отдельных модуля.Мне нужно будет передать данные со страницы 1 на страницу 2. Есть ли эффективный способ сделать это?2) На одной из моих страниц я определил два поля со списком автозаполнения.данные для одного из полей со списком будут выбраны при загрузке, а данные для второго зависят от значения первого поля со списком.Я попытался добавить изменения и изменил прослушиватели событий для 1-го поля со списком, но оба события запускаются для каждого типа букв.Мне нужно получить данные, как только пользователь выберет значение.
public void onModuleLoad()
{
final ComboBoxItem category = new ComboBoxItem("categoryName", "Category");
category.setTitle("Select");
category.setChangeOnKeypress(false) ;
category.setType("comboBox");
category.setWidth(250);
category.setIcons(icon);
category.setChangeOnKeypress(false);
final ComboBoxItem subCategory = new ComboBoxItem("subCategoryName", "Sub Category");
subCategory.setTitle("Select");
subCategory.setType("comboBox");
subCategory.setWidth(250);
subCategory.addClickHandler(new com.smartgwt.client.widgets.form.fields.events.ClickHandler()
{
@Override
public void onClick(com.smartgwt.client.widgets.form.fields.events.ClickEvent event)
{
// call to servlet[url] to get the sub categories for the selected category.
RequestBuilder requestBuilder = new RequestBuilder(RequestBuilder.GET, "url"+ selectedCategoryName);
try {
requestBuilder.sendRequest(null, new RequestCallback() {
@Override
public void onResponseReceived(Request request, Response response)
{
String xmlText = response.getText();
// Code to handle the received response.
}
@Override
public void onError(Request request, Throwable exception)
{
exception.printStackTrace();
}});
} catch (RequestException e) {
e.printStackTrace();
}
catch (Exception e) {
e.printStackTrace();
}
}
});
category.addChangeHandler(new ChangeHandler()
{
@Override
public void onChange(ChangeEvent event)
{
if(null!=event.getValue() && event.getValue()!="")
{
selectedCategoryName = event.getValue().toString();
System.out.println(selectedCategoryName);
}
}
});
}
здесь у меня есть категория со списком, значения которой будут загружаться при загрузке.когда пользователь выбирает категорию, вводя ее в поле со списком, элемент управления помогает, отображая совпадающие значения в раскрывающемся списке.для каждого нажатия клавиши происходит событие.Я добавил syso для печати введенных значений.Мне нужно выбрать подкатегорию только тогда, когда пользователь завершит выбор категории.
Любые указатели будут действительно полезны.спасибо