1

私はまだSmartGWTの初心者であり、現在奇妙な問題を抱えています。

Windows XPおよびSmartGWTバージョン3.0、GWT SDK 2.4.0(Eclipse IDEを使用)を使用しています。

だから私の問題は、SmartGWTショーケースからサンプルをコピーしたようなものです:Styled ComboBox

DynamicForm df = new DynamicForm();
ComboBoxItem cb = new ComboBoxItem();
cb.setValueMap("cat", "dog", "bird");
cb.setTitle("Select:");
df.setItems(cb);
...
layout.addMember(df);

また、Webアプリケーションとして実行すると、バリューマップが表示されません。つまり、[v]ボタンはありますが、クリックしても何も起こりません。

noobの質問でごめんなさい、そしてあなたの助けに感謝します!:D


更新-2012年5月3日

これが私のブラウザに表示されるものです:

スクリーンショットが削除されました

完全なスタンドアロンコードは次のとおりです。

HelloWorld.java

package com.example.helloworld.client;

import com.google.gwt.core.client.EntryPoint;
import com.smartgwt.client.widgets.layout.VLayout;
import com.smartgwt.client.widgets.form.DynamicForm;
import com.smartgwt.client.widgets.form.fields.ComboBoxItem;


    public class HelloWorld implements EntryPoint {

        public void onModuleLoad() {

            VLayout layout = new VLayout();
            layout.setWidth100();
            layout.setHeight100();

            DynamicForm df = new DynamicForm();
            ComboBoxItem cb = new ComboBoxItem();
            cb.setTitle("Select :");
            cb.setValueMap("Cat", "Dog", "Bird");

            df.setItems(cb);
            layout.addMember(df);

            layout.draw();
        }
    }

HelloWorld.gwt.xml

<?xml version="1.0" encoding="UTF-8"?>
<module rename-to='helloworld'>
  <!-- Inherit the core Web Toolkit stuff.                        -->
  <inherits name='com.google.gwt.user.User'/>

  <!-- Inherit the default GWT style sheet.  You can change       -->
  <!-- the theme of your GWT application by uncommenting          -->
  <!-- any one of the following lines.                            -->

  <!-- <inherits name='com.google.gwt.user.theme.standard.Standard'/> -->
  <!-- <inherits name='com.google.gwt.user.theme.chrome.Chrome'/> -->
  <!-- <inherits name='com.google.gwt.user.theme.dark.Dark'/>     -->

  <!-- Other module inherits                                      -->
  <inherits name="com.smartgwt.SmartGwt" />

  <!-- Specify the app entry point class.                         -->
  <entry-point class='com.example.helloworld.client.HelloWorld'/>

  <!-- Specify the paths for translatable code                    -->
  <source path='client'/>
  <source path='shared'/>
</module>

Eclipseの[開発モード]タブ(ブラウザーで実行するためのリンクを表示するタブ)で、次のメッセージが表示されます。

[INFO] [helloworld]-*。gwt.xmlモジュール構成では、現在のドキュメントレンダリングモード(document.compatMode ='CSS1Compat')の使用が禁止されています。
アプリケーションのホストHTMLページのDoctypeを変更するか、カスタムの「document.compatMode」構成プロパティ設定を更新します。

警告も1つあります。

次のクラスパスエントリ'C:\ some-path \ smartgwt-3.0 \ smartgwt.jar'は、サーバーのクラスパスでは使用できません。


UPDATE2-HTMLおよびCSSファイル

HTML:

<!doctype html>
<!-- The DOCTYPE declaration above will set the     -->
<!-- browser's rendering engine into                -->
<!-- "Standards Mode". Replacing this declaration   -->
<!-- with a "Quirks Mode" doctype is not supported. -->

<html>
  <head>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">

    <!--                                                               -->
    <!-- Consider inlining CSS to reduce the number of requested files -->
    <!--                                                               -->
    <link type="text/css" rel="stylesheet" href="HelloWorld.css">

    <!--                                           -->
    <!-- Any title is fine                         -->
    <!--                                           -->
    <title>Web Application Starter Project</title>

    <!--                                           -->
    <!-- This script loads your compiled module.   -->
    <!-- If you add any GWT meta tags, they must   -->
    <!-- be added before this line.                -->
    <!--                                           -->
    <script type="text/javascript" language="javascript" src="helloworld/helloworld.nocache.js"></script>
  </head>

  <!--                                           -->
  <!-- The body can have arbitrary html, or      -->
  <!-- you can leave the body empty if you want  -->
  <!-- to create a completely dynamic UI.        -->
  <!--                                           -->
  <body>

    <!-- OPTIONAL: include this if you want history support -->
    <iframe src="javascript:''" id="__gwt_historyFrame" tabIndex='-1' style="position:absolute;width:0;height:0;border:0"></iframe>

    <!-- RECOMMENDED if your web app will not function without JavaScript enabled -->
    <noscript>
      <div style="width: 22em; position: absolute; left: 50%; margin-left: -11em; color: red; background-color: white; border: 1px solid red; padding: 4px; font-family: sans-serif">
        Your web browser must have JavaScript enabled
        in order for this application to display correctly.
      </div>
    </noscript>

  </body>
</html>

およびCSSファイル:

/** Add css rules here for your application. */


/** Example rules used by the template application (remove for your app) */
h1 {
  font-size: 2em;
  font-weight: bold;
  color: #777777;
  margin: 40px 0px 70px;
  text-align: center;
}

.sendButton {
  display: block;
  font-size: 16pt;
}

/** Most GWT widgets already have a style name defined */
.gwt-DialogBox {
  width: 400px;
}

.dialogVPanel {
  margin: 5px;
}

.serverResponseLabelError {
  color: red;
}

/** Set ids using widget.getElement().setId("idOfElement") */
#closeButton {
  margin: 15px 6px 6px;
}

重要な更新

現在、デバッグ/テストビルドにGoogle Chrome(18.0.1025.168)を使用していることをお知らせするのを忘れました。Firefoxで実行すると、問題なく実行されます。

このスレッドが少し遅れていることに気づきました。したがって、これは現在既知のバグです。

結論:GWT / smartGWT開発モードにはグーグルクロームを使用しないでください(今のところ)。

ご協力ありがとうございました!:D

4

5 に答える 5

1

現在、デバッグ/テストビルドにGoogle Chrome(18.0.1025.168)を使用していることをお知らせするのを忘れました。Firefoxで実行すると、問題なく実行されます。

このスレッド(smartclientフォーラム)が少し遅れていることに気づきました。したがって、これは現在既知のバグです。

結論:GWT / smartGWT開発モードにはグーグルクロームを使用しないでください(今のところ)。

ご協力ありがとうございました!:D

于 2012-05-04T07:45:40.243 に答える
0

これを試して..

    DynamicForm df = new DynamicForm();
    ComboBox cb = new ComboBox();
    Map<String,String> valuesMap = new HashMap<String,String>();
    valuesMap.put("cat","cat");
    valuesMap.put("dog","dog");
    valuesMap.put("bird","bird");
    cb.setValueMap(valuesMap);
    cb.setTitle("Select:");
    df.setItems(cb);
    ...
    layout.addMember(df);
于 2012-05-01T17:25:26.997 に答える
0

ComboBoxはSmartGWTではありません。どこから来たの?

このコードは期待どおりに機能します:

DynamicForm df = new DynamicForm();
ComboBoxItem cb = new ComboBoxItem();
cb.setValueMap("cat", "dog", "bird");
cb.setTitle("Select");
df.setItems(cb);

HLayout layout = new HLayout();
layout.addMember(df);
layout.draw();
于 2012-05-02T15:34:39.680 に答える
0
DynamicForm df = new DynamicForm();
ComboBox cb = new ComboBox();
cb.setValueMap("cat", "dog", "bird");
cb.setTitle("Select:");
//other fields
df.setFields(cb); // Use this to add fields
layout.addMember(df);

ショーケースをご覧ください

于 2012-05-02T03:57:21.257 に答える
0

デバッグモードの場合、このselectItemまたはcomboBoxのコンテンツは表示されませんが、キーボードで下を選択すると、コンテンツが表示されます。すべてを正しく表示するには、「本番」モードにする必要があります

Chromeに問題があります。Firefoxを使用すると、コンテンツが表示されます。

于 2012-09-25T16:26:26.000 に答える