May 03, 2011, 9:03 AM
[CLOSED] Event after store DataBind
Hi,
I need an event that fires after the codebhind DataBind of a store. In my example at the start of page the second grid takes the color right, but when I select a row of first grid the second grid refresh data, but It loses the colors of the cells.
Jimmy
I need an event that fires after the codebhind DataBind of a store. In my example at the start of page the second grid takes the color right, but when I select a row of first grid the second grid refresh data, but It loses the colors of the cells.
Jimmy
<%@ Page Language="C#" %>
<%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext" %>
<script runat="server">
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
_loadGridGruppi();
_loadGridIngressi("1");
}
}
private void _loadGridGruppi()
{
System.Data.DataTable dt = new System.Data.DataTable();
System.Data.DataRow dr = null;
dt.Columns.Add("cdGruppo");
dt.Columns.Add("deDescrizione");
dr = dt.NewRow();
dr["cdGruppo"] = "1";
dr["deDescrizione"] = "Gruppo 1";
dt.Rows.Add(dr);
dr = dt.NewRow();
dr["cdGruppo"] = "2";
dr["deDescrizione"] = "Gruppo 2";
dt.Rows.Add(dr);
storeElencoGruppi.DataSource = dt;
storeElencoGruppi.DataBind();
}
private void _loadGridIngressi(string cdGruppo)
{
System.Data.DataTable dt = new System.Data.DataTable();
System.Data.DataRow dr = null;
dt.Columns.Add("type");
dt.Columns.Add("idIngresso");
dt.Columns.Add("deIngresso");
if (cdGruppo.Equals("1"))
{
dr = dt.NewRow();
dr["type"] = "1";
dr["idIngresso"] = "1";
dr["deIngresso"] = "Tipo 1";
dt.Rows.Add(dr);
dr = dt.NewRow();
dr["type"] = "2";
dr["idIngresso"] = "2";
dr["deIngresso"] = "Tipo 2";
dt.Rows.Add(dr);
dr = dt.NewRow();
dr["type"] = "3";
dr["idIngresso"] = "3";
dr["deIngresso"] = "Tipo 3";
dt.Rows.Add(dr);
}
else
{
dr = dt.NewRow();
dr["type"] = "1";
dr["idIngresso"] = "4";
dr["deIngresso"] = "Tipo 4";
dt.Rows.Add(dr);
dr = dt.NewRow();
dr["type"] = "2";
dr["idIngresso"] = "5";
dr["deIngresso"] = "Tipo 5";
dt.Rows.Add(dr);
dr = dt.NewRow();
dr["type"] = "3";
dr["idIngresso"] = "6";
dr["deIngresso"] = "Tipo 6";
dt.Rows.Add(dr);
}
storeElencoIngressi.DataSource = dt;
storeElencoIngressi.DataBind();
}
protected void gridElencoGruppi_rowSelect(object sender , DirectEventArgs e )
{
this._loadGridIngressi(e.ExtraParams["cdGruppo"].ToString());
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<title></title>
<style type="text/css">
.rowSingolo {
background-color: LightCyan ;
}
.rowAggregato{
background-color: PeachPuff ;
}
.rowFormula
{
background-color: ThreeDShadow ;
}
</style>
<script type="text/javascript">
function setBackgroundColorElencoIngressi(grid, index) {
row = grid.store.data.items[index];
if (row.data["type"] == "1") {
Ext.fly(grid.getView().getCell(index, 2)).toggleClass('rowSingolo');
}
else {
if (row.data["type"] == "2") {
Ext.fly(grid.getView().getCell(index, 2)).toggleClass('rowAggregato');
}
else {
Ext.fly(grid.getView().getCell(index, 2)).toggleClass('rowFormula');
}
}
}
var gridElencoIngressiColorBackground = function() {
for (rowNum = 0; rowNum < this.store.data.items.length; rowNum++) {
setBackgroundColorElencoIngressi(this, rowNum);
}
}
</script>
</head>
<body>
<form id="form1" runat="server">
<ext:ResourceManager ID="ResourceManager1" runat="server">
</ext:ResourceManager>
<div>
<ext:Store ID="storeElencoGruppi" runat="server" >
<Reader>
<ext:JsonReader>
<Fields>
<ext:RecordField Name="cdGruppo" />
<ext:RecordField Name="deDescrizione" />
</Fields>
</ext:JsonReader>
</Reader>
</ext:Store>
<ext:Store ID="storeElencoIngressi" runat="server" >
<Reader>
<ext:JsonReader>
<Fields>
<ext:RecordField Name="type" />
<ext:RecordField Name="idIngresso" />
<ext:RecordField Name="deIngresso" />
</Fields>
</ext:JsonReader>
</Reader>
</ext:Store>
<ext:Panel ID="pnlElencoGruppi" runat="server" Width="600" AutoHeight="true" Title="<b>Gestione gruppi</b>" >
<Items>
<ext:GridPanel
ID="gridElencoGruppi"
runat="server"
Title="Title"
Frame="true"
Width="600px"
StoreID="storeElencoGruppi"
DDGroup="GridDDEnelcoGruppi"
EnableDragDrop="true"
AutoHeight="True"
BodyBorder="False"
Border="False"
EnableColumnHide="False"
HideBorders="True"
MaxHeight="1000"
Header="false">
<ColumnModel ID="cmElencoGruppi" runat="server">
<Columns>
<ext:Column DataIndex="cdGruppo" Hidden="true" />
<ext:Column DataIndex="deDescrizione" Header="<b>Descrizione</b>" Hidden="false" Width="535px" Tooltip="Descrizione gruppo" />
</Columns>
</ColumnModel>
<SelectionModel>
<ext:RowSelectionModel ID="rsmElencoGruppi" runat="server" SingleSelect="true" >
<DirectEvents>
<RowSelect OnEvent="gridElencoGruppi_rowSelect" Buffer="100">
<ExtraParams>
<ext:Parameter Name="cdGruppo" Value="#{gridElencoGruppi}.getStore().getAt(rowIndex).data.cdGruppo" Mode="Raw" />
<ext:Parameter Name="deDescrizione" Value="#{gridElencoGruppi}.getStore().getAt(rowIndex).data.deDescrizione" Mode="Raw" />
</ExtraParams>
</RowSelect>
</DirectEvents>
</ext:RowSelectionModel>
</SelectionModel>
</ext:GridPanel>
</Items>
</ext:Panel>
<br />
<ext:Panel ID="pnlElencoIngressi" runat="server" Width="600" AutoHeight="true" Title="<b>Gestione ingressi</b>" >
<Items>
<ext:GridPanel
ID="gridElencoIngressi"
runat="server"
Title="Title"
Frame="true"
Width="600px"
StoreID="storeElencoIngressi"
DDGroup="GridDDEnelcoIngressi"
EnableDragDrop="true"
AutoHeight="True"
BodyBorder="False"
Border="False"
EnableColumnHide="False"
HideBorders="True"
MaxHeight="1000"
Header="false">
<ColumnModel ID="cmGridElencoIngressi" runat="server">
<Columns>
<ext:Column DataIndex="type" Hidden="true" />
<ext:Column DataIndex="idIngresso" Hidden="true" />
<ext:Column DataIndex="deIngresso" Header="<b>Description</b>" Hidden="false" Width="535px" />
</Columns>
</ColumnModel>
<Listeners>
<ViewReady Fn="gridElencoIngressiColorBackground" />
</Listeners>
<SelectionModel>
<ext:RowSelectionModel ID="rslGridElencoIngressi" runat="server" SingleSelect="true" />
</SelectionModel>
</ext:GridPanel>
</Items>
</ext:Panel>
</div>
</form>
</body>
</html>
Last edited by geoffrey.mcgill; May 06, 2011 at 8:43 AM.
Reason: [CLOSED]