Dec 29, 2011, 7:16 PM
Get all rows from grid only getting selected?!? Please help!
What I am trying to do is to get all rows/values from my grid - regardless of selection - but when I run the below - I only get the last row selected:
Here is my store:
Here is my store:
<ext:Store ID="storeStaffWorkflow" runat="server" AutoDataBind="false" OnRefreshData="loadWorkflow">
<Reader>
<ext:JsonReader>
<Fields>
<ext:RecordField Name="displayName" Type="String" />
<ext:RecordField Name="us_id" Type="Int" />
<ext:RecordField Name="wf_us_order" Type="Int" />
</Fields>
</ext:JsonReader>
</Reader>
<Listeners>
<Load Handler="btnSaveWorkflow.setDisabled(false);btnHelpWorkflow.setDisabled(false);" />
<LoadException Handler="Ext.Msg.alert('Staff Workflow - Load failed', e.message || e )" />
</Listeners>
</ext:Store>
Here is my Gridpanel and the button with the ajax event:
<ext:GridPanel runat="server" AutoWidth="true" Border="false" ID="gpWorkflow" StoreID="storeStaffWorkflow"
AutoDataBind="true" Height="300" AutoExpandColumn="displayName" StripeRows="true"
ClicksToEdit="1">
<ColumnModel>
<Columns>
<ext:Column ColumnID="wf_us_order" Header="Workflow Order" Sortable="true" Width="100"
DataIndex="wf_us_order" Hideable="false" MenuDisabled="true" Align="Center">
<Editor>
<ext:NumberField runat="server" StyleSpec="text-align:center;" SelectOnFocus="true"
ID="numOrder">
</ext:NumberField>
</Editor>
</ext:Column>
<ext:Column ColumnID="displayName" Header="PARA Resource" Sortable="true" Width="155"
DataIndex="displayName" Hideable="false" MenuDisabled="true">
</ext:Column>
</Columns>
</ColumnModel>
<View>
<ext:GridView ForceFit="true">
</ext:GridView>
</View>
<SelectionModel>
<ext:RowSelectionModel runat="server" SingleSelect="false">
</ext:RowSelectionModel>
</SelectionModel>
<LoadMask Msg="Loading Task Workflow..." ShowMask="true" />
</ext:GridPanel>
<div style="float: left; padding-left: 10px;">
<ext:Button ID="btnSaveWorkflow" runat="server" Icon="Accept" Text="Save Workflow">
<AjaxEvents>
<Click OnEvent="saveWorkflow">
<ExtraParams>
<ext:Parameter Name="values" Value="gpWorkflow.getRowsValues()" Mode="Raw" Encode="true" />
</ExtraParams>
</Click>
</AjaxEvents>
</ext:Button>
</div>
And here is my ajaxevent - the result is always = a single row - not the entire row collection from the grid - which is what I want:
protected void saveWorkflow(object sender, AjaxEventArgs e)
{
string jsonValues = e.ExtraParams["values"];
List<Dictionary<string, string>> records = JSON.Deserialize<List<Dictionary<string, string>>>(jsonValues);
string result = "";
foreach (var record in records)
{
result += record["displayName"] + " ";
result += record["wf_us_order"] + "<br />";
}
Ext.Msg.Alert("Server", result).Show();
//SqlParameter[] aryParams0 = new SqlParameter[1];
//aryParams0[0] = new SqlParameter("@strCriteria", SqlDbType.VarChar);
// aryParams0[0].Value = result;
//SqlHelper.ExecuteNonQuery(ConnectionStrings.PDEProd, CommandType.StoredProcedure, "spPDE_tasks_SaveWorkflow", aryParams0);
//this.Label1.Html = result.ToString();
}