[CLOSED] Event after store DataBind

  1. #1

    [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

    <%@ 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]
  2. #2
    Hi,

    You could call JavaScript function on server side using X.JS.Call().

    Or you could handle Store's Load listener.

    But I would suggest you to use Renderer for columns to achieve your requirement. The similar as it's here:
    http://forums.ext.net/showthread.php?12842
  3. #3
    Hi Daniil,
    I have used X.JS.Call() and all ok.
    Thank you

    Jimmy

Similar Threads

  1. Store DataBind in DirectEvents
    By threewonders in forum 1.x Help
    Replies: 1
    Last Post: Nov 03, 2011, 10:04 AM
  2. [CLOSED] Error after store databind
    By albayrak in forum 1.x Legacy Premium Help
    Replies: 1
    Last Post: Sep 30, 2011, 7:24 AM
  3. [1.0] Store.LoadData vs DataBind
    By Kam in forum 1.x Help
    Replies: 1
    Last Post: Apr 19, 2011, 11:00 AM
  4. [CLOSED] Possible to DataBind Store to a Dictionary?
    By jmcantrell in forum 1.x Legacy Premium Help
    Replies: 3
    Last Post: Sep 22, 2010, 9:04 PM
  5. fasten databind to store
    By Birgit in forum 1.x Help
    Replies: 0
    Last Post: Sep 15, 2010, 7:04 AM

Posting Permissions