Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Gwt 访问小部件上的值并发送到服务器_Gwt_Gwt2_Gxt - Fatal编程技术网

Gwt 访问小部件上的值并发送到服务器

Gwt 访问小部件上的值并发送到服务器,gwt,gwt2,gxt,Gwt,Gwt2,Gxt,我有一个从GXT 2.2.5库创建的界面,现在我需要从TextField获取用户输入的值并将其发送到服务器。如何从textfield获取此用户输入的值?下面是示例代码: package kz.bimash.client; import com.extjs.gxt.ui.client.widget.LayoutContainer; import com.extjs.gxt.ui.client.widget.LayoutContainer; import com.extjs.gxt.ui.cli

我有一个从GXT 2.2.5库创建的界面,现在我需要从TextField获取用户输入的值并将其发送到服务器。如何从textfield获取此用户输入的值?下面是示例代码:

package kz.bimash.client;

import com.extjs.gxt.ui.client.widget.LayoutContainer;

import com.extjs.gxt.ui.client.widget.LayoutContainer;
import com.extjs.gxt.ui.client.widget.Slider;
import com.extjs.gxt.ui.client.widget.VerticalPanel;
import com.extjs.gxt.ui.client.widget.button.Button;
import com.extjs.gxt.ui.client.widget.layout.FlowLayout;
import com.extjs.gxt.ui.client.widget.layout.FormData;
import com.extjs.gxt.ui.client.widget.layout.FormLayout;
import com.google.gwt.i18n.client.NumberFormat;
import com.google.gwt.user.client.Element;

public class Form extends LayoutContainer {

private VerticalPanel vp;

private FormData formData;

@Override
protected void onRender(Element parent, int index) {
    super.onRender(parent, index);
    formData = new FormData("-20");
    vp = new VerticalPanel();
    vp.ensureDebugId("vps");
    vp.setSpacing(10);
    //createForm1();
    createForm2();
    add(vp);
}



private void createForm2() {
    FormPanel form2 = new FormPanel();
    form2.ensureDebugId("pan");
    form2.setFrame(true);
    form2.setHeading("Simple Form with FieldSets");
    form2.setWidth(350);
    form2.setLayout(new FlowLayout());

    FieldSet fieldSet = new FieldSet();
    fieldSet.setHeading("User Information");
    fieldSet.setCheckboxToggle(true);

    FormLayout layout = new FormLayout();
    layout.setLabelWidth(75);
    fieldSet.setLayout(layout);

    TextField<String> firstName = new TextField<String>();

    firstName.setFieldLabel("First Name");
    firstName.ensureDebugId("firstName");
    firstName.setValue("olzheke");
    firstName.setAllowBlank(false);
    fieldSet.add(firstName, formData);

    TextField<String> lastName = new TextField<String>();
    lastName.setFieldLabel("Last Name");
    lastName.setValue(firstName.getItemId());
    fieldSet.add(lastName, formData);

    TextField<String> company = new TextField<String>();
    company.setFieldLabel("Company");
    fieldSet.add(company, formData);

    TextField<String> email = new TextField<String>();
    email.setFieldLabel("Email");
    fieldSet.add(email, formData);

    form2.add(fieldSet);
    fieldSet = new FieldSet();
    fieldSet.setHeading("Phone Numbers");
    fieldSet.setCollapsible(true);

    layout = new FormLayout();
    layout.setLabelWidth(75);
    fieldSet.setLayout(layout);

    TextField<String> field = new TextField<String>();
    field.setFieldLabel("Home");
    fieldSet.add(field, formData);

    field = new TextField<String>();
    field.setFieldLabel("Business");
    fieldSet.add(field, formData);

    field = new TextField<String>();
    field.setFieldLabel("Mobile");
    fieldSet.add(field, formData);

    field = new TextField<String>();
    field.setFieldLabel("Fax");
    fieldSet.add(field, formData);

    form2.add(fieldSet);
    form2.setButtonAlign(HorizontalAlignment.CENTER);
    form2.addButton(new Button("Save"));
    form2.addButton(new Button("Cancel"));

    vp.add(form2);
}

}
包kz.bimash.client;
导入com.extjs.gxt.ui.client.widget.LayoutContainer;
导入com.extjs.gxt.ui.client.widget.LayoutContainer;
导入com.extjs.gxt.ui.client.widget.Slider;
导入com.extjs.gxt.ui.client.widget.VerticalPanel;
导入com.extjs.gxt.ui.client.widget.button.button;
导入com.extjs.gxt.ui.client.widget.layout.FlowLayout;
导入com.extjs.gxt.ui.client.widget.layout.FormData;
导入com.extjs.gxt.ui.client.widget.layout.FormLayout;
导入com.google.gwt.i18n.client.NumberFormat;
导入com.google.gwt.user.client.Element;
公共类表单扩展了LayoutContainer{
私人垂直专家组副总裁;
私有FormData FormData;
@凌驾
受保护的void onRender(元素父元素,int索引){
super.onRender(父级,索引);
formData=新的formData(“-20”);
vp=新垂直面板();
EnsuredBugID副总裁(“vps”);
副总裁(10);
//createForm1();
createForm2();
添加(vp);
}
私有void createForm2(){
FormPanel form2=新的FormPanel();
表格2.被保险人身份证(“pan”);
form2.setFrame(真);
表单2.设置标题(“带字段集的简单表单”);
表2.设置宽度(350);
form2.setLayout(新的FlowLayout());
FieldSet FieldSet=新的FieldSet();
字段集。设置标题(“用户信息”);
fieldSet.setCheckboxToggle(真);
FormLayout布局=新建FormLayout();
布局。设置标签宽度(75);
fieldSet.setLayout(布局);
TextField firstName=新的TextField();
firstName.setFieldLabel(“名字”);
firstName.ensuredbugid(“firstName”);
firstName.setValue(“olzheke”);
firstName.setAllowBlank(false);
fieldSet.add(firstName,formData);
TextField lastName=新的TextField();
lastName.setFieldLabel(“姓氏”);
setValue(firstName.getItemId());
添加(lastName,formData);
TextField company=新TextField();
公司。setFieldLabel(“公司”);
添加(公司、表单数据);
TextField email=新建TextField();
电子邮件。setFieldLabel(“电子邮件”);
添加(电子邮件、表单数据);
表2.添加(字段集);
字段集=新字段集();
字段集。设置标题(“电话号码”);
fieldSet.setcollapsable(true);
布局=新的FormLayout();
布局。设置标签宽度(75);
fieldSet.setLayout(布局);
TextField=newtextfield();
字段。设置字段标签(“主页”);
添加(字段,表单数据);
field=新的TextField();
字段。设置字段标签(“业务”);
添加(字段,表单数据);
field=新的TextField();
field.setFieldLabel(“移动”);
添加(字段,表单数据);
field=新的TextField();
字段。设置字段标签(“传真”);
添加(字段,表单数据);
表2.添加(字段集);
表格2.设置按钮对齐(水平对齐.中心);
表格2.添加按钮(新按钮(“保存”);
表格2.添加按钮(新按钮(“取消”));
副总裁添加(表格2);
}
}
这是EntryPoint实现的类,我将在其中发送:

package kz.bimash.client;




import com.extjs.gxt.ui.client.widget.Document;
import com.extjs.gxt.ui.client.widget.MessageBox;

import com.extjs.gxt.ui.client.widget.form.FieldSet;
import com.extjs.gxt.ui.client.widget.form.TextField;
import com.extjs.gxt.ui.client.widget.layout.FlowLayout;
import com.extjs.gxt.ui.client.widget.layout.FormData;
import com.extjs.gxt.ui.client.widget.layout.FormLayout;
import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.core.client.GWT;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.extjs.gxt.ui.client.widget.form.FormPanel;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.gwt.user.client.ui.*;


public class GWTSample implements EntryPoint {
private UserServiceAsync prox;
private HTML label1, button1;

public void onModuleLoad() {
    prox = GWT.create(UserService.class);
   // Window.enableScrolling(false);
  //  Window.setMargin("0px");
    Form form = new Form();

    form.setVisible(true);
  Button btn = new Button("Click me!");
   // final RootPanel root=RootPanel.get();
    final RootLayoutPanel root = RootLayoutPanel.get();

    btn.addClickHandler(new ClickHandler() {
        @Override
        public void onClick(ClickEvent event) {
            prox.getMsq(new AsyncCallback<String>() {
                @Override
                public void onFailure(Throwable caught) {
                  //To change body of implemented methods use File | Settings | File Templates.
                }

                @Override
                public void onSuccess(String result) {

                   // MessageBox.info("testing","this is ext gwt",null);
                }
            });
        }
    });

    TextField<String> tf = (TextField<String>) form.getItemByItemId("firstName");
    Label lab = new Label();
    //lab.setText(tf.getValue());
   // root.add(lab);
    root.get().add(form);

    root.get().add(btn);
    //Document.get().getElementByID()
}

}
包kz.bimash.client;
导入com.extjs.gxt.ui.client.widget.Document;
导入com.extjs.gxt.ui.client.widget.MessageBox;
导入com.extjs.gxt.ui.client.widget.form.FieldSet;
导入com.extjs.gxt.ui.client.widget.form.TextField;
导入com.extjs.gxt.ui.client.widget.layout.FlowLayout;
导入com.extjs.gxt.ui.client.widget.layout.FormData;
导入com.extjs.gxt.ui.client.widget.layout.FormLayout;
导入com.google.gwt.core.client.EntryPoint;
导入com.google.gwt.core.client.gwt;
导入com.google.gwt.event.dom.client.ClickEvent;
导入com.google.gwt.event.dom.client.ClickHandler;
导入com.extjs.gxt.ui.client.widget.form.FormPanel;
导入com.google.gwt.user.client.rpc.AsyncCallback;
导入com.google.gwt.user.client.ui.*;
公共类GWTSample实现入口点{
专用UserServiceAsync prox;
私有HTML标签1,按钮1;
moduleload()上的公共void{
prox=GWT.create(UserService.class);
//窗口。启用滚动(false);
//窗口设置边距(“0px”);
表单=新表单();
form.setVisible(true);
按钮btn=新建按钮(“单击我!”);
//final RootPanel root=RootPanel.get();
final RootLayoutPanel root=RootLayoutPanel.get();
btn.addClickHandler(新的ClickHandler(){
@凌驾
公共作废一次点击(点击事件){
prox.getMsq(新的AsyncCallback(){
@凌驾
失败时的公共无效(可丢弃){
//要更改已实现方法的主体,请使用文件|设置|文件模板。
}
@凌驾
成功时的公共void(字符串结果){
//MessageBox.info(“正在测试”,“这是ext gwt”,null);
}
});
}
});
TextField tf=(TextField)form.getItemByItemId(“firstName”);
Label lab=新标签();
//lab.setText(tf.getValue());
//root.add(lab);
root.get().add(表单);
root.get().add(btn);
//Document.get().getElementByID()
}
}

单击按钮时,我需要从Texfield检索值并将其发送到服务器,我如何访问这些值?

在顶部声明您的
tf
(全局变量)
TextField

稍后指定值

tf = (TextField<String>) form.getItemByItemId("firstName");

为什么不在表单类中创建一个方法呢

public class Form extends LayoutContainer {

    TextField<String> firstName;

    public String getFirstName(){
      return firstName.getValue();
    }
  ...
}
public class Form extends LayoutContainer {

    TextField<String> firstName;

    public String getFirstName(){
      return firstName.getValue();
    }
  ...
}
public void onModuleLoad() {
    ...
    final Form form = new Form();

    ...

    btn.addClickHandler(new ClickHandler() {
        @Override
        public void onClick(ClickEvent event) { 
            String firstName =form.getFirstName();
         }
      ...
    }
}