Extjs 之 getRowsValues 在GridPanel提交时的妙用

需要将当前GridPanel中的数据传送到后台就需要用到getRowsValues方法.

先看方法原型:

    getRowsValues : function (selectedOnly, visibleOnly, dirtyOnly, currentPageOnly) {
        this.stopEditing(false);
       
        if (Ext.isEmpty(selectedOnly)) {
            selectedOnly = true;
        }

字面意思已经很明显,不需要多说每个参数的功能

看看前台标记代码:

<ext:Window runat="server" ID="winDlgAdd" Title="费用结报表-添加" CloseAction="Hide" Minimizable="false"
        Modal="true" CenterOnLoad="true" Frame="true" Width="400" MinWidth="400" Height="400"
        MinHeight="300" Maximizable="true" BufferResize="false" ShowOnLoad="false" AnimateTarget="btnAdd"
        AutoScroll="true">
        <Body>
            <ext:Panel ID="Panel2" runat="server" BodyStyle="padding:2px 2px 15px 2px;" Title="基本信息"
                Collapsible="true" Border="false" BodyBorder="false">
                <Body>
                    <ext:Panel ID="Panel3" runat="server" BodyBorder="false">
                        <Body>
                            <ext:ColumnLayout ID="ColumnLayout1" runat="server">
                                <ext:LayoutColumn ColumnWidth=".5">
                                    <ext:Panel ID="Panel4" runat="server" Border="false" Header="false" BodyBorder="false"
                                        Width="150px">
                                        <Body>
                                            <ext:FormLayout ID="FormLayout1" runat="server" LabelAlign="Left" LabelWidth="50">
                                                <Anchors>
                                                    <ext:Anchor Horizontal="95%">
                                                        <ext:Label runat="server" ID="lblSn" FieldLabel="单据号">
                                                        </ext:Label>
                                                    </ext:Anchor>
                                                    <ext:Anchor>
                                                        <ext:ComboBox runat="server" ID="txtTheMonth" AllowBlank="false" EmptyText="请选择月份"
                                                            FieldLabel="月份" BlankText="请选择月份" Editable="false" Width="90">
                                                            <AjaxEvents>
                                                                <Select OnEvent="GetNewSN" />
                                                            </AjaxEvents>
                                                        </ext:ComboBox>
                                                    </ext:Anchor>
                                                    <ext:Anchor>
                                                        <ext:Label runat="server" FieldLabel="日期" ID="lblFillDate"></ext:Label>
                                                    </ext:Anchor>
                                                    <ext:Anchor Horizontal="95%">
                                                        <ext:Label runat="server" ID="lblArea" FieldLabel="区域" Text="某某办事处" />
                                                    </ext:Anchor>
                                                </Anchors>
                                            </ext:FormLayout>
                                        </Body>
                                    </ext:Panel>
                                </ext:LayoutColumn>
                                <ext:LayoutColumn ColumnWidth=".5">
                                    <ext:Panel ID="Panel5" runat="server" Border="false" Header="false" BodyBorder="false"
                                        Width="150px">
                                        <Body>
                                            <ext:FormLayout ID="FormLayout2" runat="server" LabelAlign="Left" LabelWidth="30">
                                                <Anchors>
                                                    <ext:Anchor Horizontal="95%">
                                                        <ext:Label runat="server" ID="lblStatu" FieldLabel="状态" Text="起草中" />
                                                    </ext:Anchor>
                                                    <ext:Anchor Horizontal="95%">
                                                        <ext:Label runat="server" ID="lblAuthor" FieldLabel="报账" Text="张三" />
                                                    </ext:Anchor>
                                                    <ext:Anchor Horizontal="95%">
                                                        <ext:Label runat="server" ID="lblFirstCheckUser" FieldLabel="初审" Text="暂无" />
                                                    </ext:Anchor>
                                                    <ext:Anchor Horizontal="95%">
                                                        <ext:Label runat="server" ID="lblSecondCheckUser" FieldLabel="复审" Text="暂无" />
                                                    </ext:Anchor>
                                                </Anchors>
                                            </ext:FormLayout>
                                        </Body>
                                    </ext:Panel>
                                </ext:LayoutColumn>
                            </ext:ColumnLayout>
                        </Body>
                    </ext:Panel>
                    <ext:Panel ID="Panel6" runat="server" Border="false" BodyBorder="false">
                        <Body>
                            <ext:FormLayout ID="FormLayout3" runat="server" LabelAlign="Left" LabelWidth="50">
                                <Anchors>
                                    <ext:Anchor Horizontal="100%">
                                        <ext:TextArea runat="server" ID="txtNotes" EmptyText="备注信息" FieldLabel="备注" />
                                    </ext:Anchor>
                                </Anchors>
                            </ext:FormLayout>
                        </Body>
                    </ext:Panel>
                </Body>
            </ext:Panel>
            <ext:GridPanel runat="server" Title="详细信息" AutoScroll="true" TrackMouseOver="true"
                ID="gpFeeDetails" StoreID="storeFeeDetail" Collapsible="true" AutoHeight="true"
                AutoExpandColumn="FeeClassTitle" ClicksToEdit="1" StripeRows="true" Border="false"
                BodyBorder="true">
                <ColumnModel ID="ColumnModel1" runat="server">
                    <Columns>
                        <ext:RowNumbererColumn />
                        <ext:GroupingSummaryColumn DataIndex="FeeClassTitle" ColumnID="FeeClassTitle" Header="费用类别"
                            Width="1" MenuDisabled="true">
                        </ext:GroupingSummaryColumn>
                        <ext:GroupingSummaryColumn DataIndex="FeeTypeTitle" ColumnID="FeeTypeTitle" Header="费用项目"
                            MenuDisabled="true" SummaryType="Count" Width="160" Resizable="false">
                            <SummaryRenderer Handler="return ((value === 0 || value > 1) ? '(共' + value +' 项)合计' : '(共1项)合计');" />
                        </ext:GroupingSummaryColumn>
                        <ext:GroupingSummaryColumn DataIndex="Amount" ColumnID="Amount" Header="本月发生" MenuDisabled="true"
                            SummaryType="Sum" Width="100" Resizable="false">
                            <SummaryRenderer Handler="return ('¥'+value);" />
                            <Editor>
                                <ext:NumberField ID="NumberField1" runat="server" DecimalPrecision="2" AllowBlank="false"
                                    AllowDecimals="true" AllowNegative="false" StyleSpec="text-align:left" />
                            </Editor>
                        </ext:GroupingSummaryColumn>
                    </Columns>
                </ColumnModel>
                <View>
                    <ext:GroupingView ID="GroupingView1" runat="server" ForceFit="true" MarkDirty="false"
                        ShowGroupName="false" EnableNoGroups="true" HideGroupedColumn="true" />
                </View>
                <SelectionModel>
                    <ext:RowSelectionModel ID="RowSelectionModel1" runat="server" />
                </SelectionModel>
                <Plugins>
                    <ext:GroupingSummary ID="GroupingSummary1" runat="server" />
                </Plugins>
                <BottomBar>
                    <ext:StatusBar ID="StatusBar1" runat="server">
                        <Items>
                            <ext:Label ID="Label1" runat="server" Text="金额单位:元" Icon="MoneyYen" />
                        </Items>
                    </ext:StatusBar>
                </BottomBar>
            </ext:GridPanel>
        </Body>
        <Buttons>
            <ext:Button runat="server" ID="btnAddSave" Text="暂存">
                <AjaxEvents>
                    <Click OnEvent="FeeSave">
                    <EventMask Msg="正在保存..." ShowMask="true" MinDelay="200" />
                        <ExtraParams>
                            <ext:Parameter Name="Values" Value="Ext.encode(#{gpFeeDetails}.getRowsValues(false))" Mode="Raw" />
                        </ExtraParams>
                    </Click>
                </AjaxEvents>
                <ToolTips>
                    <ext:ToolTip runat="server" Title="暂时保存,暂不提交给上级审核">
                    </ext:ToolTip>
                </ToolTips>
            </ext:Button>
            <ext:Button runat="server" ID="btnAddAccept" Text="提交">
                <AjaxEvents>
                    <Click OnEvent="Send">
                        <Confirmation ConfirmRequest="true" Title="确认提交吗?" Message="提交后将不可修改,确认数据无误并提交审核吗?"/>
                        <EventMask Msg="提交中,请稍后..." MinDelay="200" ShowMask="true"/>
                    </Click>
                   
                </AjaxEvents>
                <ToolTips>
                    <ext:ToolTip runat="server" Title="提交给上级进行审核,提交后将不能进行修改">
                    </ext:ToolTip>
                </ToolTips>
            </ext:Button>
            <ext:Button runat="server" ID="btnAddReset" Text="清空">
                <ToolTips>
                    <ext:ToolTip runat="server" Title="清空当前输入">
                    </ext:ToolTip>
                </ToolTips>
            </ext:Button>
            <ext:Button runat="server" ID="btnAddCancel" Text="取消">
                <Listeners>
                    <Click Handler="winDlgAdd.hide()" />
                </Listeners>
            </ext:Button>
        </Buttons>
        <LoadMask ShowMask="true" Msg="加载中..." />
    </ext:Window>

没时间整理,看红色处关键代码

后台代码奉上:

protected void FeeSave(object sender, AjaxEventArgs e)
    {
     
        string json = e.ExtraParams["Values"];
        if (String.IsNullOrEmpty(json))
        {
            this.ScriptManager1.AddScript("Ext.Msg.alert('提示', '没有费用明细信息,保存失败!');");
            return;
        }
       
       
List<FeeModel> _list = JSON.Deserialize<List<FeeModel>>(json);

        //此_list包含了GridPanel中的所有数据
    }

转载出处:guog 2010-07-13 龙宜坡 http://hi.baidu.com/goga



转载于:https://www.cnblogs.com/qqhepp/articles/2001244.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值