스마트 gwt 2.4를 사용하여 소규모 앱을 개발 중입니다. 저는 HTML이 풍부하고 브라우저 간 문제를 피하기 위해 다른 HTML 관련 RIA보다 현명한 선택을 택했습니다. 내 앱에 2 페이지가 있습니다. 처음에 사용자가 페이지 1에 입력 한 세부 정보는 페이지 2에 표시되어야하는 데이터를 가져 오는 데 사용되며 그 이후에는 변경해야 할 모든 변경 사항을 페이지 2 자체에서 만들 수 있습니다. 사용자는 새로운 데이터 세트를 얻기 위해 페이지 1로 되돌아 갈 필요가 없다. 1) 이제 페이지간에 이동하는 방법은 무엇입니까? 나는이 페이지들을 두 개의 분리 된 모듈로 정의했다. 나는 1 페이지에서 2 페이지로 데이터를 전달할 필요가있다. 효율적인 방법이 있는가? 2) 내 페이지 중 하나에서 두 개의 자동 완성 콤보 상자를 정의했습니다. 콤보 상자 중 하나의 데이터는로드시 가져오고 두 번째 데이터는 첫 번째 콤보 상자의 값에 따라 달라집니다. 변경 사항을 추가하고 첫 번째 콤보 상자의 이벤트 리스너를 변경하려고 시도했지만 모든 문자 유형에 대해 두 이벤트가 모두 실행됩니다. 사용자가 값을 선택하면 데이터를 가져와야합니다.스마트 gwt 시작하기
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를 추가했습니다. 사용자가 카테고리를 선택했을 때만 하위 카테고리를 가져와야합니다.
모든 포인터가 정말 유용 할 것입니다. 감사합니다
: // www.smartclient.com/smartgwt/showcase/#styled_combobox_category). 내 문제는 모든 키를 누를 때마다 변경 이벤트가 발생한다는 것입니다. 내가 고양이를 찾고 있다고 해. C, A, T 각각 3 번씩 해고 당합니다. 청중에게 내가 CAT를 선택한 사실을 알리는 이벤트가 필요합니다. CAT 값을 받으면 CAT [첫 번째 값]을 기반으로 데이터를 가져 오기위한 또 다른 요청을 시작합니다. 현재로서는 그런 식으로 일어나지 않습니다. –
comboBoxItem.setChangeOnKeypress (false);를 구현 했습니까? – RAS
예 .i 시도했습니다. 내 첫 번째 질문에 대한 모든 포인터. –