【问题标题】:In flex How to Show the error textArea...when mouse is scrolled在flex中如何显示错误textArea ...当鼠标滚动时
【发布时间】:2011-04-18 10:33:34
【问题描述】:

在我的 flex 应用程序中,我使用了一个文本区域,当用户未提供必填文件时显示字段名称.....我的应用程序有大约 30 个字段...我在顶部显示 textarea...所以它当我向下滚动鼠标时很难看到文本区域... 当我向下滚动鼠标时,我需要显示 TEXTAREA ......(它应该显示在靠近滚动按钮的一侧)...... 谢谢xxx:-)

【问题讨论】:

  • 那么,我认为您想要的是一个显示尚未填写的字段的文本区域?是否仅在用户尝试提交时显示?你在使用验证器吗?
  • 没有在 flex 前端使用验证....验证 java 后端进程中的字段....显示的文本错误区域应该与屏幕一侧的滚动条一起出现....打它!
  • 你为什么不使用前端验证呢? Flex 有一个完整的验证框架供您使用。坦率地说,对于您的问题本身,有数百种方法可以做到这一点,而无需了解有关交互、样式等规范的更多信息。
  • 是的,您是 Rite J_A_X ...但是...我的项目要求是将 jsp 更改为 flex...java 代码我使用现有代码..所以不要更改流程..我离开了验证部分,就像它在 java 代码中一样!!:-) 我希望你明白了!!
  • 我愿意,但我仍然对您的实际问题感到困惑。是不是每次您尝试提交表单时,您都会向服务器发送返回数据以说明哪个字段的表单错误?这些数据的结构是什么?你希望它如何显示?

标签: apache-flex scroll


【解决方案1】:

这是我为帮助您而制作的示例代码:

<?xml version="1.0" encoding="utf-8"?>
<s:Application minHeight="600" minWidth="955" xmlns:fx="http://ns.adobe.com/mxml/2009"
    xmlns:mx="library://ns.adobe.com/flex/mx" xmlns:s="library://ns.adobe.com/flex/spark">

    <fx:Script>
    <![CDATA[
        protected function checkbox_changeHandler(event:Event):void
        {
            var text:String = "";
            var numOfControls:int = formContentGroup.numElements;
            for (var i:int = 0; i < numOfControls; i ++)
            {
                var control:CheckBox = CheckBox (formContentGroup.getElementAt(i));
                if (control.selected)
                {
                    text += text.length > 0 ? ", " : "";
                    text += control.label;
                }
            }
            statusText.text = text;
        }

    ]]>
    </fx:Script>

    <s:Group horizontalCenter="0" verticalCenter="0">
        <s:layout>
            <s:HorizontalLayout verticalAlign="contentJustify" />
        </s:layout>
        <s:Group height="400" width="400">
            <s:layout>
                <s:VerticalLayout horizontalAlign="justify" />
            </s:layout>
            <s:TextArea editable="false" id="statusText"
                includeInLayout="{statusText.text &amp;&amp; statusText.text.length > 0}"
                updateComplete="event.currentTarget.heightInLines = NaN"
                visible="{statusText.text &amp;&amp; statusText.text.length > 0}" />
            <s:VGroup height="100%" id="formContentGroup">
                <s:CheckBox change="checkbox_changeHandler(event)" label="CheckBox1" />
                <s:CheckBox change="checkbox_changeHandler(event)" label="CheckBox2" />
                <s:CheckBox change="checkbox_changeHandler(event)" label="CheckBox3" />
                <s:CheckBox change="checkbox_changeHandler(event)" label="CheckBox4" />
                <s:CheckBox change="checkbox_changeHandler(event)" label="CheckBox5" />
                <s:CheckBox change="checkbox_changeHandler(event)" label="CheckBox6" />
                <s:CheckBox change="checkbox_changeHandler(event)" label="CheckBox7" />
                <s:CheckBox change="checkbox_changeHandler(event)" label="CheckBox8" />
                <s:CheckBox change="checkbox_changeHandler(event)" label="CheckBox9" />
                <s:CheckBox change="checkbox_changeHandler(event)" label="CheckBox10" />
                <s:CheckBox change="checkbox_changeHandler(event)" label="CheckBox11" />
                <s:CheckBox change="checkbox_changeHandler(event)" label="CheckBox12" />
                <s:CheckBox change="checkbox_changeHandler(event)" label="CheckBox13" />
                <s:CheckBox change="checkbox_changeHandler(event)" label="CheckBox14" />
                <s:CheckBox change="checkbox_changeHandler(event)" label="CheckBox15" />
                <s:CheckBox change="checkbox_changeHandler(event)" label="CheckBox16" />
                <s:CheckBox change="checkbox_changeHandler(event)" label="CheckBox17" />
                <s:CheckBox change="checkbox_changeHandler(event)" label="CheckBox18" />
                <s:CheckBox change="checkbox_changeHandler(event)" label="CheckBox19" />
                <s:CheckBox change="checkbox_changeHandler(event)" label="CheckBox20" />
                <s:CheckBox change="checkbox_changeHandler(event)" label="CheckBox21" />
                <s:CheckBox change="checkbox_changeHandler(event)" label="CheckBox22" />
                <s:CheckBox change="checkbox_changeHandler(event)" label="CheckBox23" />
            </s:VGroup>
        </s:Group>
        <s:VScrollBar includeInLayout="{formContentGroup.height &lt; formContentGroup.contentHeight}"
            viewport="{formContentGroup}" visible="{formContentGroup.height &lt; formContentGroup.contentHeight}" />
    </s:Group>

</s:Application>

要测试它,只需选中或取消选中复选框。

希望这会有所帮助! :)

【讨论】:

  • 在视口中使用滚动条有什么问题?如果这不是适合您的解决方案,您有什么要求?
  • 它工作得很好,我在我的应用程序中使用了同样的方法...thankxx man...我只是想知道是否有其他方法...bcoz 正在开发另一个 flex 3 和我必须满足类似的要求,但几乎没有修改..;-)是的!
  • 另一种适用于 Flex 3 和 Flex 4 的方法是为目标容器创建自定义外观并在边框中包含您的文本字段。在 Flex 3 中,您必须为该皮肤提供正确的 Edge Metrics。我想使用带有视口的滚动条要简单得多。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-08
  • 1970-01-01
  • 2011-11-08
  • 2012-04-18
  • 1970-01-01
相关资源
最近更新 更多