Aug 24, 2012, 8:56 AM
[CLOSED] Up/Down issue. Need help
Hi folks:
I'm into this code. Steps to reproduce:
1. click cell COL_6
2. move it up to top, before COL_1
3. Press Lightning button
ExtraParams["jsonDatos1"] does not have same grid rows have. COL_6 is at bottom instead of top.
Please can you help me?
Thanks a million!
I'm into this code. Steps to reproduce:
1. click cell COL_6
2. move it up to top, before COL_1
3. Press Lightning button
ExtraParams["jsonDatos1"] does not have same grid rows have. COL_6 is at bottom instead of top.
Please can you help me?
Thanks a million!
<%@ Page Language="C#" %>
<%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext" %>
<script runat="server">
public enum Sort { None = 0, Ascending = 1, Descending = 2 }
protected void btnAutoGenerate_Click(object sender, DirectEventArgs e)
{
X.MessageBox.Alert("", e.ExtraParams["jsonDatos1"]).Show();
}
protected void Page_Load(object sender, EventArgs e)
{
if (X.IsAjaxRequest == false)
{
System.Collections.Generic.List<object> data = new System.Collections.Generic.List<object>();
data.Add(new { Description = "my table 1", Value = "TABLE_1" });
Store store = this.cboTables.GetStore();
store.DataSource = data;
store.DataBind();
store = new Store();
data = new System.Collections.Generic.List<object>();
data.Add(new { Description = "my col. 1", Value = "COL_1" });
data.Add(new { Description = "my col. 2", Value = "COL_2" });
data.Add(new { Description = "my col. 3", Value = "COL_3" });
data.Add(new { Description = "my col. 4", Value = "COL_4" });
data.Add(new { Description = "my col. 5", Value = "COL_5" });
data.Add(new { Description = "my col. 6", Value = "COL_6" });
store = this.cboColumns.GetStore();
store.DataSource = data;
store.DataBind();
store = new Store();
data = new System.Collections.Generic.List<object>();
data.Add(new { Description = Sort.None, Value = (int)Sort.None });
data.Add(new { Description = Sort.Ascending, Value = (int)Sort.Ascending });
data.Add(new { Description = Sort.Descending, Value = (int)Sort.Descending });
store = this.StoreOrderBy;
store.DataSource = data;
store.DataBind();
store = new Store();
data = new System.Collections.Generic.List<object>();
data.Add(new { Id = 1, Table_Name = "TABLE_1", Column_Name = "COL_1", OrderBy = Sort.None });
data.Add(new { Id = 2, Table_Name = "TABLE_1", Column_Name = "COL_2", OrderBy = Sort.None });
data.Add(new { Id = 3, Table_Name = "TABLE_1", Column_Name = "COL_3", OrderBy = Sort.None });
data.Add(new { Id = 4, Table_Name = "TABLE_1", Column_Name = "COL_4", OrderBy = Sort.None });
data.Add(new { Id = 5, Table_Name = "TABLE_1", Column_Name = "COL_5", OrderBy = Sort.None });
data.Add(new { Id = 6, Table_Name = "TABLE_1", Column_Name = "COL_6", OrderBy = Sort.None });
store = this.gridCriteria.GetStore();
store.DataSource = data;
store.DataBind();
}
}
</script>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<title></title>
<script type="text/javascript" src="https://getfirebug.com/firebug-lite.js"></script>
<!--INICIO - do not allow changing a row if the current one is invalid -->
<ext:ResourcePlaceHolder ID="ResourcePlaceHolder1" runat="server" Mode="ScriptFiles" />
<script type="text/javascript"> Ext.ux.grid.RowEditor.prototype.startEditing = Ext.ux.grid.RowEditor.prototype.startEditing.createInterceptor(function () { if (this.editing && !this.isValid()) { return false; } }); </script>
<!--FIN - do not allow changing a row if the current one is invalid -->
<script type="text/javascript">
function pagerCriteriaUpdate() {
var rowsPerPage = pagerCriteriaComboBox.getValue();
if (rowsPerPage == "ALL") {
rowsPerPage = storeCriteria.totalLength;
}
var NewVariable = parseInt(rowsPerPage);
storeCriteria.start = 1;
storeCriteria.limit = NewVariable;
pagerCriteria.pageSize = NewVariable;
pagerCriteria.doLoad(pagerCriteria.cursor);
pagerCriteria.moveFirst();
};
var GroupByRenderer = function (value) {
var r = StoreGroupBy.getById(value);
if (Ext.isEmpty(r)) {
return "";
}
return r.data.Description;
};
var OrderByRenderer = function (value) {
var r = StoreOrderBy.getById(value);
if (Ext.isEmpty(r)) {
return "";
}
return r.data.Description;
};
var ShowHiddeAggregate = function () {
var mostrar = btnAggregateControl.pressed;
gridCriteria.getColumnModel().setHidden(6, !mostrar);
}
var NewRow = function () {
btnAddCriteria.disabled = true;
gridCriteria.getRowEditor().stopEditing();
var s = storeCriteria.save();
var table_count = StoreTables.totalLength;
var table_name = "";
if (table_count == 1)
table_name = StoreTables.getAt(0).id;
var rowIndex = gridCriteria.addRecord({
Table_Name: table_name,
Column_Name: "",
Alias: "",
Output: true,
OrderBy: "",
GroupBy: "",
Filter: "",
Or1: "",
Or2: "",
Or3: ""
});
gridCriteria.getView().refresh();
gridCriteria.getSelectionModel().selectRow(rowIndex);
gridCriteria.getRowEditor().startEditing(rowIndex);
}
var CancelEdition = function () {
if (this.record.newRecord) {
this.grid.getStore().remove(this.record);
this.grid.getView().refresh();
}
btnAddCriteria.disabled = false;
}
var BeforeEdition = function () {
btnAddCriteria.disabled = true;
}
var UpdateEdition = function () {
if (this.record.newRecord) {
this.record.newRecord = false;
this.record.dirty = false;
}
btnAddCriteria.disabled = false;
}
function move(grid, up) {
var ds = grid.getStore();
var record = grid.getSelectionModel().getSelected();
var rindex = ds.indexOf(record);
rindex += up ? -1 : 1;
if (rindex < 0 || rindex >= ds.getCount()) {
return;
}
ds.remove(record);
ds.insert(rindex, record);
grid.getSelectionModel().selectRecords([record]);
}
</script>
</head>
<body>
<form id="form1" runat="server">
<ext:ResourceManager ID="ResourceManager1" runat="server" />
<ext:Store ID="storeCriteria" runat="server" RefreshAfterSaving="None">
<Reader>
<ext:JsonReader IDProperty="Id">
<Fields>
<ext:RecordField Name="Id" Type="String" />
<ext:RecordField Name="Table_Name" Type="String" />
<ext:RecordField Name="Column_Name" Type="String" />
<ext:RecordField Name="Alias" Type="String" />
<ext:RecordField Name="Output" Type="Boolean" />
<ext:RecordField Name="OrderBy" Type="String" />
<ext:RecordField Name="GroupBy" Type="String" />
<ext:RecordField Name="Filter" Type="String" />
<ext:RecordField Name="Or1" Type="String" />
<ext:RecordField Name="Or2" Type="String" />
<ext:RecordField Name="Or3" Type="String" />
</Fields>
</ext:JsonReader>
</Reader>
</ext:Store>
<ext:Store ID="StoreOrderBy" runat="server">
<Reader>
<ext:JsonReader IDProperty="Value">
<Fields>
<ext:RecordField Name="Value" Type="String" />
<ext:RecordField Name="Description" Type="String" />
</Fields>
</ext:JsonReader>
</Reader>
</ext:Store>
<ext:Store ID="StoreGroupBy" runat="server">
<Reader>
<ext:JsonReader IDProperty="Value">
<Fields>
<ext:RecordField Name="Value" Type="String" />
<ext:RecordField Name="Description" Type="String" />
</Fields>
</ext:JsonReader>
</Reader>
</ext:Store>
<ext:Store ID="storeAvailableDesigns" runat="server">
<Reader>
<ext:JsonReader IDProperty="Id">
<Fields>
<ext:RecordField Name="Id" Type="Int" />
<ext:RecordField Name="CodigoUsuario" Type="String" />
<ext:RecordField Name="Proceso" Type="String" />
<ext:RecordField Name="Descripcion" Type="String" />
</Fields>
</ext:JsonReader>
</Reader>
</ext:Store>
<ext:Panel ID="pnlContenedor" runat="server" AutoHeight="true" AutoWidth="true">
<TopBar>
<ext:Toolbar runat="server" Flat="true">
<Items>
<ext:Button ID="btnAutoGenerate" runat="server" Icon="Lightning">
<DirectEvents>
<Click OnEvent="btnAutoGenerate_Click" ViewStateMode="Enabled">
<EventMask ShowMask="true" />
<ExtraParams>
<ext:Parameter Name="jsonDatos1" Value="Ext.encode(#{gridCriteria}.getRowsValues())"
Mode="Raw" />
</ExtraParams>
</Click>
</DirectEvents>
</ext:Button>
<ext:ToolbarSeparator />
<ext:Button ID="btnAggregateControl" runat="server" EnableToggle="true" ToggleGroup="G1"
Pressed="false" Icon="Sum">
<Listeners>
<Click Fn="ShowHiddeAggregate" />
</Listeners>
</ext:Button>
<ext:Button ID="btnAddCriteria" runat="server" Icon="Add">
<Listeners>
<Click Fn="NewRow" />
</Listeners>
</ext:Button>
<ext:Button ID="Button1" runat="server" Text="UP">
<Listeners>
<Click Handler="move(#{gridCriteria}, true);" />
</Listeners>
</ext:Button>
<ext:Button ID="Button2" runat="server" Text="DOWN">
<Listeners>
<Click Handler="move(#{gridCriteria}, false);" />
</Listeners>
</ext:Button>
<ext:ToolbarSeparator />
<ext:TextField ID="txtNombreOrigen" runat="server" Width="100" ReadOnly="true" />
<ext:ToolbarSeparator />
<ext:TextField ID="txtNombreInforme" runat="server" Width="200" ReadOnly="true" />
</Items>
</ext:Toolbar>
</TopBar>
<Items>
<ext:GridPanel ID="gridCriteria" runat="server" AutoWidth="true" Height="200" StoreID="storeCriteria"
Border="false">
<ColumnModel ID="ColumnModel1" runat="server">
<Columns>
<ext:RowNumbererColumn />
<ext:Column ColumnID="Table_Name" DataIndex="Table_Name" Editable="true" Hideable="false"
Sortable="false" Resizable="false" Width="80">
<Editor>
<ext:ComboBox runat="server" ID="cboTables" DisplayField="Description" ValueField="Value">
<Store>
<ext:Store ID="StoreTables" runat="server">
<Reader>
<ext:JsonReader IDProperty="Value">
<Fields>
<ext:RecordField Name="Description" Type="String" />
<ext:RecordField Name="Value" Type="String" />
</Fields>
</ext:JsonReader>
</Reader>
</ext:Store>
</Store>
</ext:ComboBox>
</Editor>
</ext:Column>
<ext:Column ColumnID="Column_Name" DataIndex="Column_Name" Editable="true" Hideable="false"
Sortable="false" Resizable="false" Width="200">
<Editor>
<ext:ComboBox runat="server" ID="cboColumns" DisplayField="Caption" ValueField="Name">
<Store>
<ext:Store ID="Store1" runat="server">
<Reader>
<ext:JsonReader IDProperty="Name">
<Fields>
<ext:RecordField Name="Caption" Type="String" />
<ext:RecordField Name="Name" Type="String" />
</Fields>
</ext:JsonReader>
</Reader>
</ext:Store>
</Store>
</ext:ComboBox>
</Editor>
</ext:Column>
<ext:Column ColumnID="Alias" DataIndex="Alias" Editable="true" Hideable="false" Sortable="false"
Resizable="false" Width="100">
<Editor>
<ext:TextField ID="TextField1" runat="server" />
</Editor>
</ext:Column>
<ext:BooleanColumn ColumnID="Output" DataIndex="Output" Editable="true" Hideable="false"
Sortable="false" Resizable="false" Width="50">
<Editor>
<ext:Checkbox ID="Checkbox1" runat="server" />
</Editor>
</ext:BooleanColumn>
<ext:Column ColumnID="OrderBy" DataIndex="OrderBy" Editable="true" Hideable="false"
Sortable="false" Resizable="false" Width="100">
<Renderer Fn="OrderByRenderer" />
<Editor>
<ext:ComboBox runat="server" ID="cboOrderBy" DisplayField="Description" ValueField="Value"
StoreID="StoreOrderBy" />
</Editor>
</ext:Column>
<ext:Column ColumnID="GroupBy" DataIndex="GroupBy" Editable="true" Hideable="false"
Sortable="false" Resizable="false" Width="100" Hidden="true">
<Renderer Fn="GroupByRenderer" />
<Editor>
<ext:ComboBox runat="server" ID="cboGroupBy" DisplayField="Description" ValueField="Value"
StoreID="StoreGroupBy">
</ext:ComboBox>
</Editor>
</ext:Column>
<ext:Column ColumnID="Filter" DataIndex="Filter" Editable="true" Hideable="false"
Sortable="false" Resizable="false" Width="100">
<Editor>
<ext:TextField ID="TextField2" runat="server" />
</Editor>
</ext:Column>
<ext:Column ColumnID="Or1" DataIndex="Or1" Editable="true" Hideable="false" Sortable="false"
Resizable="false" Width="100">
<Editor>
<ext:TextField ID="TextField3" runat="server" />
</Editor>
</ext:Column>
<ext:Column ColumnID="Or2" DataIndex="Or2" Editable="true" Hideable="false" Sortable="false"
Resizable="false" Width="100">
<Editor>
<ext:TextField ID="TextField4" runat="server" />
</Editor>
</ext:Column>
<ext:Column ColumnID="Or3" DataIndex="Or3" Editable="true" Hideable="false" Sortable="false"
Resizable="false" Width="100">
<Editor>
<ext:TextField ID="TextField5" runat="server" />
</Editor>
</ext:Column>
</Columns>
</ColumnModel>
<Plugins>
<ext:RowEditor ID="RowEditor1" runat="server" SaveText="Update">
<Listeners>
<BeforeEdit Fn="BeforeEdition" />
<AfterEdit Fn="UpdateEdition" />
<CancelEdit Fn="CancelEdition" Delay="0" />
</Listeners>
</ext:RowEditor>
</Plugins>
<SelectionModel>
<ext:RowSelectionModel runat="server" />
</SelectionModel>
<Listeners>
<RowContextMenu Handler="e.preventDefault(); #{gridCriteriaRowContextMenu}.dataRecord = this.store.getAt(rowIndex);#{gridCriteriaRowContextMenu}.showAt(e.getXY());" />
</Listeners>
<BottomBar>
<ext:PagingToolbar ID="pagerCriteria" runat="server" HideRefresh="true">
<Items>
<ext:ToolbarSeparator />
<ext:ComboBox ID="pagerCriteriaComboBox" runat="server" Editable="false" Width="100"
ForceSelection="true" TriggerAction="ALL" FireSelectOnLoad="True" SelectOnFocus="true">
<Listeners>
<Select Handler="pagerCriteriaUpdate()" />
</Listeners>
<Items>
<ext:ListItem Text="5" Value="5" />
<ext:ListItem Text="10" Value="10" />
<ext:ListItem Text="20" Value="20" />
<ext:ListItem Text="ALL" Value="ALL" />
</Items>
</ext:ComboBox>
<ext:ToolbarSeparator />
</Items>
</ext:PagingToolbar>
</BottomBar>
</ext:GridPanel>
<ext:Menu ID="gridCriteriaRowContextMenu" runat="server">
<Items>
<ext:MenuItem ID="btnDeleteCriteria" runat="server" Icon="Delete">
<Listeners>
<Click Handler="gridCriteria.getStore().remove(this.parentMenu.dataRecord);" />
</Listeners>
</ext:MenuItem>
</Items>
</ext:Menu>
</Items>
</ext:Panel>
</form>
</body>
</html>
Last edited by Daniil; Aug 24, 2012 at 12:46 PM.
Reason: [CLOSED]