Jun 06, 2012, 10:47 AM
[CLOSED] RowEditor : How to cancel edition when user clicks at other row
Hi folks,
How can I raise cancel event at RowEditor when user clicks at other row?
Steps:
1. Press Add button. Fill tabla and Columna cells. Press Update
2. Press Add button again. Click at row 1. See this invalid second row...
Thanks a lot!
How can I raise cancel event at RowEditor when user clicks at other row?
Steps:
1. Press Add button. Fill tabla and Columna cells. Press Update
2. Press Add button again. Click at row 1. See this invalid second row...
Thanks a lot!
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="extnet_proves.Default" %>
<%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext" %>
<script runat="server">
protected void Page_Load(object sender, EventArgs e)
{
SetStoreTables();
}
private void SetStoreTables()
{
System.Collections.Generic.List<object> data = new System.Collections.Generic.List<object>();
data.Add(new { Description = "TABLE_1" });
data.Add(new { Description = "TABLE_2" });
Store s1 = this.cboTables.GetStore();
s1.DataSource = data;
s1.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>
<ext:XScript ID="XScript1" runat="server">
<script type="text/javascript">
var GroupByRenderer = function (value) {
var r = StoreGroupBy.getById(value);
if (Ext.isEmpty(r)) {
return "";
}
return r.data.Description;
};
var OrderTypeRenderer = function (value) {
var r = StoreOrderType.getById(value);
if (Ext.isEmpty(r)) {
return "";
}
return r.data.Description;
};
var NewRow = function () {
btnNewRow.disabled = true;
PanelCriteria.getRowEditor().stopEditing();
var s = StorePanelCriteria.save();
var rowIndex = PanelCriteria.addRecord({
Table: "",
Column: ""
});
PanelCriteria.getView().refresh();
PanelCriteria.getSelectionModel().selectRow(rowIndex);
PanelCriteria.getRowEditor().startEditing(rowIndex);
}
var CancelEdition = function () {
if (this.record.newRecord) {
this.grid.getStore().remove(this.record);
this.grid.getView().refresh();
}
btnNewRow.disabled = false;
}
var BeforeEdition = function () {
btnNewRow.disabled = true;
}
var UpdateEdition = function () {
if (this.record.newRecord) {
this.record.newRecord = false;
this.record.dirty = false;
}
btnNewRow.disabled = false;
}
</script>
</ext:XScript>
</head>
<body>
<form id="form1" runat="server">
<ext:ResourceManager ID="ResourceManager1" runat="server" />
<ext:Store ID="StorePanelCriteria" runat="server" RefreshAfterSaving="None">
<Reader>
<ext:JsonReader IDProperty="Id">
<Fields>
<ext:RecordField Name="Id" Type="String" />
<ext:RecordField Name="Table" Type="String" />
<ext:RecordField Name="Column" Type="String" />
</Fields>
</ext:JsonReader>
</Reader>
</ext:Store>
<ext:Panel ID="pnlContenedor" runat="server">
<TopBar>
<ext:Toolbar ID="Toolbar1" runat="server" Flat="true">
<Items>
<ext:Button ID="btnNewRow" runat="server" Icon="Add" ToolTip="ADD">
<Listeners>
<Click Fn="NewRow" />
</Listeners>
</ext:Button>
</Items>
</ext:Toolbar>
</TopBar>
<Items>
<ext:GridPanel ID="PanelCriteria" runat="server" AutoWidth="true" Height="300" StoreID="StorePanelCriteria">
<ColumnModel ID="ColumnModel1" runat="server">
<Columns>
<ext:RowNumbererColumn />
<ext:Column ColumnID="Table" DataIndex="Table" Editable="true" Hideable="false" Sortable="false"
Resizable="true" Width="100" Header="Tabla">
<Editor>
<ext:ComboBox runat="server" ID="cboTables" DisplayField="Description" ValueField="Description"
AllowBlank="false">
<Store>
<ext:Store ID="Store2" runat="server">
<Reader>
<ext:JsonReader IDProperty="Description">
<Fields>
<ext:RecordField Name="Description" Type="String" />
<ext:RecordField Name="Description" Type="String" />
</Fields>
</ext:JsonReader>
</Reader>
</ext:Store>
</Store>
</ext:ComboBox>
</Editor>
</ext:Column>
<ext:Column ColumnID="Column" DataIndex="Column" Editable="true" Hideable="false"
Sortable="false" Resizable="true" Width="100" Header="Columna">
<Editor>
<ext:TextField ID="TextField1" runat="server" AllowBlank="false" />
</Editor>
</ext:Column>
</Columns>
</ColumnModel>
<Plugins>
<ext:RowEditor ID="RowEditor1" runat="server" SaveText="Update">
<Listeners>
<BeforeEdit Fn="BeforeEdition" />
<AfterEdit Fn="UpdateEdition" />
<CancelEdit Fn="CancelEdition" />
</Listeners>
</ext:RowEditor>
</Plugins>
<SelectionModel>
<ext:RowSelectionModel ID="RowSelectionModel1" runat="server" />
</SelectionModel>
</ext:GridPanel>
</Items>
</ext:Panel>
</form>
</body>
</html>
Last edited by Daniil; Jun 06, 2012 at 2:45 PM.
Reason: [CLOSED]