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