需要将当前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