【问题标题】:How do you show the data in corresponding textbox fields when a row is clicked in datagrid?在数据网格中单击一行时,如何在相应的文本框字段中显示数据?
【发布时间】:2024-05-18 14:10:02
【问题描述】:

在我的 flex 3 应用程序中,我有 5 个带有文本框的字段。我正在为这些字段使用数据网格进行编辑和更新过程。当在数据网格中选择一行时,我希望数据显示在相应的文本框中。

【问题讨论】:

    标签: apache-flex datagrid textbox


    【解决方案1】:

    这里是示例代码

    <?xml version="1.0" encoding="utf-8"?>
    <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
        <mx:Script>
            <![CDATA[
                import mx.events.ListEvent;
                private function onChange(event:ListEvent):void
                {
                    txt1.text = grd.selectedItem.label1.toString();
                    txt2.text = grd.selectedItem.label2.toString();
                    txt3.text = grd.selectedItem.label3.toString();
                    txt4.text = grd.selectedItem.label4.toString();
                    txt5.text = grd.selectedItem.label5.toString();
                }
    
            ]]>
        </mx:Script>
        <mx:XML id="gridXML" xmlns="">
            <root> 
              <item> 
                  <label1>A1</label1>
                  <label2>A2</label2>
                  <label3>A3</label3>
                  <label4>A4</label4>
                  <label5>A5</label5>
              </item>
              <item>
                  <label1>B1</label1>
                  <label2>B2</label2>
                  <label3>B3</label3>
                  <label4>B4</label4>
                  <label5>B5</label5>
              </item>
              <item>
                  <label1>C1</label1>
                  <label2>C2</label2>
                  <label3>C3</label3>
                  <label4>C4</label4>
                  <label5>C5</label5>
              </item>
              <item>
                  <label1>D1</label1>
                  <label2>D2</label2>
                  <label3>D3</label3>
                  <label4>D4</label4>
                  <label5>D5</label5>
              </item>
              <item>
                  <label1>E1</label1>
                  <label2>E2</label2>
                  <label3>E3</label3>
                  <label4>E4</label4>
                  <label5>E5</label5>
              </item>
              <item>
                  <label1>F1</label1>
                  <label2>F2</label2>
                  <label3>F3</label3>
                  <label4>F4</label4>
                  <label5>F5</label5>
              </item>
            </root> 
        </mx:XML>
        <mx:VBox>
            <mx:HBox id="hbox">
                <mx:TextInput id="txt1"/>
                <mx:TextInput id="txt2"/>
                <mx:TextInput id="txt3"/>
                <mx:TextInput id="txt4"/>
                <mx:TextInput id="txt5"/>
            </mx:HBox>
            <mx:DataGrid id="grd" dataProvider="{gridXML.item}" change="{onChange(event)}">
                <mx:columns>
                    <mx:DataGridColumn id="label1" dataField="label1" />
                    <mx:DataGridColumn id="label2" dataField="label2" />
                    <mx:DataGridColumn id="label3" dataField="label3" />
                    <mx:DataGridColumn id="label4" dataField="label4" />
                    <mx:DataGridColumn id="label5" dataField="label5" />
                </mx:columns>
            </mx:DataGrid>
        </mx:VBox>
    </mx:Application>
    

    使用 Datagrid Change EventselectedItem 填充 TextBox 的

    希望有帮助

    【讨论】:

    • 如果用户使用键盘更改 DataGrid 中的选定项怎么办?它会起作用吗? :) 我想应该有change 事件:)