[CLOSED] [1.0] checkbox.checked not valorized

  1. #1

    [CLOSED] [1.0] checkbox.checked not valorized



    hi,</p>

    I have a checkboxgroup created runtime and I add a "check" event on a particular checkbox that controls a textfield (visible/hidden)

    The problem is that checkbox.checked property does not work correctly; it returns always false.

    Here the code:
    Private Function CreaListaPericoli() As Ext.Net.Panel
        Dim Panel As New Ext.Net.Panel
        Panel.ID = "PanelCheckPericoli"
        Panel.AnchorHorizontal = "100%"
        Panel.Border = "false"</p>
    
    
        Dim chkListaPericoli As New Ext.Net.CheckboxGroup
        chkListaPericoli.ID = "chkPericoli"
        chkListaPericoli.ColumnsNumber = "1"
    </p>
    
    
        For i As Integer = 0 To 10
            Dim chkPericolo As New Ext.Net.Checkbox
            chkPericolo.ID = "chkPERICOLO_" &amp; i + 1
            chkPericolo.BoxLabel = "PERICOLO " &amp; i + 1
            chkListaPericoli.Items.Add(chkPericolo)
        Next</p>
    
    
        Dim chkAltroPericolo As New Ext.Net.Checkbox
        chkAltroPericolo.ID = "chkPERICOLO_ALTRO"
        chkAltroPericolo.BoxLabel = "ALTRO"
    
        AddHandler chkAltroPericolo.DirectEvents.Check.Event, AddressOf AltroPericolo</p>
    
    
    </p>
    
    
        chkListaPericoli.Items.Add(chkAltroPericolo)</p>
    
    
        Panel.Items.Add(chkListaPericoli)
    
    </p>
    
    
        Dim txtAltroPericolo As New Ext.Net.TextField
        txtAltroPericolo.ID = "txtALTROPERICOLO"
        txtAltroPericolo.Width = "200"
    
        Panel.Items.Add(txtAltroPericolo)
    </p>
    
    
        Return Panel
    End Function
    
    Protected Sub AltroPericolo(ByVal sender As Object, ByVal e As DirectEventArgs)
        Dim Panel As Ext.Net.Panel = FormPanelRichiesta.FindControl("PanelcheckPericoli")
    
        If IsNothing(Panel) Then Exit Sub
    
        Dim chkAltroPericolo As Ext.Net.Checkbox = Panel.FindControl("chkPERICOLO_ALTRO")
    
        Dim txtAltroPericolo As Ext.Net.TextField = FormPanelRichiesta.FindControl("txtALTROPERICOLO")    </p>
    
    
        'Checked's property return always false: why ????? 
        If chkAltroPericolo.Checked Then
            txtAltroPericolo.visible=true
        Else
            txtAltroPericolo.visible=false
        End If
    
        Panel.Render()
        FormPanelRichiesta.DoLayout()
    End Sub
    Many thanks,

    Paolo

    </p>
  2. #2

    RE: [CLOSED] [1.0] checkbox.checked not valorized

    Hi,

    Please provide full test sample which reproduces the problem
  3. #3

    RE: [CLOSED] [1.0] checkbox.checked not valorized



    Hi Vladimir,
    attached you can find a full test sample that reproduces the problem; please note that first I test it without inherits from a master page and it works perfectly!!!

    If you check "ALTRO" a textfield must appear/disappear but it does not work.

    Many thanks for any suggest.

    Paolo
  4. #4

    RE: [CLOSED] [1.0] checkbox.checked not valorized

    Hi,

    ASP.NET master page requires viewstate (content page controls must be registered in the viewstate). Therefore you have to set ViewStateMode="Enabled" for the Button1 Click direct event
  5. #5

    RE: [CLOSED] [1.0] checkbox.checked not valorized



    Hi Vladimir,
    I have the same problem with radiogroup but it does not work even if a set ViewStateMode="Enabled" on Button1 Click direct event.
    Please see test attached.
    Many thanks,
    Paolo
  6. #6

    RE: [CLOSED] [1.0] checkbox.checked not valorized

    Hi,

    Fixed. Please update from SVN

    Also, please note that ViewStateMode="Enabled" is required for each direct event where you use Render method.
    It is better to use Hidden instead Visible (in this case it is not required rerender component), Disabled instead Enabled

    Here is the changed code
    <%@ Page Language="C#" MasterPageFile="~/AjaxEvents/Page.Master"  %>
    <%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext" %>
    
    <script runat="server">
    protected void Page_Load(object sender, System.EventArgs e)
    {
        if (Session["load_checkbox"] != null) {
            CaricaPericoli(false);
        }
    }
    
    protected void Button1_Click(object sender, System.EventArgs e)
    {
        CaricaPericoli(true);
        Session["load_checkbox"] = true;
    }
    
    private void CaricaPericoli(bool Render)
    {
        Ext.Net.CompositeField Pannello = CreaGestionePericoli();
    
        if (Pannello == null) return;
     
    
        Pannello.AutoHeight = false;
        Pannello.AutoWidth = false;
    
        FormPanelRichiesta.Add(Pannello);
    
        if (Render) Pannello.Render(); 
    
        if (Render) FormPanelRichiesta.DoLayout(); 
    }
    
    private Ext.Net.CompositeField CreaGestionePericoli()
    {
        Ext.Net.CompositeField CompFieldContenitore = new Ext.Net.CompositeField();
    
        CompFieldContenitore.ID = "CompFieldContenitore";
        CompFieldContenitore.AnchorHorizontal = "100%";
        CompFieldContenitore.HideLabel = true;
        CompFieldContenitore.LabelWidth = 0;
    
    
        Ext.Net.Label lblEtichetta = new Ext.Net.Label();
    
        lblEtichetta.Text = "Pericoli:";
        lblEtichetta.Width = 130;
    
        CompFieldContenitore.Items.Add(lblEtichetta);
    
        Ext.Net.Label lblObbligatorio = new Ext.Net.Label();
    
        lblObbligatorio.Text = "*";
        lblObbligatorio.StyleSpec = "font-weight: bold; color:red; width:10px;";
        lblObbligatorio.Width = 10;
    
        CompFieldContenitore.Items.Add(lblObbligatorio);
    
    
    
        Ext.Net.Panel Panel = new Ext.Net.Panel();
    
        Panel.ID = "Panel";
        Panel.AnchorHorizontal = "100%";
        Panel.Border = false;
    
        Panel.Items.Add(CreaTipoODLPericoli("S"));
        Panel.Items.Add(CreaListaPericoli());
    
        CompFieldContenitore.Items.Add(Panel);
    
        return CompFieldContenitore;
    }
    
    private Ext.Net.RadioGroup CreaTipoODLPericoli(string Valore)
    {
        Ext.Net.RadioGroup RadioPericoli = new Ext.Net.RadioGroup();
        RadioPericoli.ID = "rdTIPOODLPERICOLI";
        RadioPericoli.StyleSpec = "width:90px;";
    
        Ext.Net.Radio PericoloSI = new Ext.Net.Radio();
        PericoloSI.Name = RadioPericoli.ID;
        PericoloSI.ID = "rdTIPOODLPERICOLI_SI";
        PericoloSI.BoxLabel = "SI";
        if (Valore == "S") PericoloSI.Checked = true; 
    
        RadioPericoli.Items.Add(PericoloSI);
    
        Ext.Net.Radio PericoloNO = new Ext.Net.Radio();
        PericoloNO.Name = RadioPericoli.ID;
        PericoloNO.ID = "rdTIPOODLPERICOLI_NO";
        PericoloNO.BoxLabel = "NO";
        if (Valore != "S") PericoloNO.Checked = false; 
    
        RadioPericoli.Items.Add(PericoloNO);
    
        RadioPericoli.DirectEvents.Change.EventMask.ShowMask = true;
        RadioPericoli.DirectEvents.Change.EventMask.Msg = "";
        RadioPericoli.DirectEvents.Change.Event += AbilitaPericoli;
    
        return RadioPericoli;
    }
    
    protected void AbilitaPericoli(object sender, DirectEventArgs e)
    {
        Ext.Net.Radio PericoloSI = FormPanelRichiesta.FindControl("rdTIPOODLPERICOLI_SI") as Ext.Net.Radio;
        if (PericoloSI == null) return;
    
    
        Ext.Net.Panel PanelPericoli = FormPanelRichiesta.FindControl("PanelPericoli") as Ext.Net.Panel;
    
        if (PericoloSI.Checked) {
            PanelPericoli.Hidden = false;
        }
        else {
            PanelPericoli.Hidden = true;
        }
    }
    
    
    
    private Ext.Net.Panel CreaListaPericoli()
    {
        Ext.Net.Panel Panel = new Ext.Net.Panel();
        Panel.ID = "PanelPericoli";
        Panel.AnchorHorizontal = "100%";
        Panel.Border = false;
    
        Ext.Net.CheckboxGroup chkListaPericoli = new Ext.Net.CheckboxGroup();
        chkListaPericoli.ID = "chkPericoli";
        chkListaPericoli.ColumnsNumber = 1;
    
        for (int i = 0; i <= 4; i++) {
            Ext.Net.Checkbox chkPericolo = new Ext.Net.Checkbox();
            chkPericolo.ID = "chkPERICOLO_" + i + 1;
            chkPericolo.BoxLabel = "PERICOLO " + i + 1;
            chkListaPericoli.Items.Add(chkPericolo);
        }
    
        Ext.Net.Checkbox chkAltroPericolo = new Ext.Net.Checkbox();
        chkAltroPericolo.ID = "chkPERICOLO_ALTRO";
        chkAltroPericolo.BoxLabel = "ALTRO";
        chkAltroPericolo.DirectEvents.Check.Event += AltroPericolo;
    
        chkListaPericoli.Items.Add(chkAltroPericolo);
    
        Panel.Items.Add(chkListaPericoli);
    
        //Devo inserire la textbox in un pannello per visualizzarla o nasconderla a seconda del checkbox "ALTRO"
        Ext.Net.Panel PanelAltroPericolo = new Ext.Net.Panel();
    
        PanelAltroPericolo.ID = "PanelAltroPericolo";
        PanelAltroPericolo.AnchorHorizontal = "100%";
        PanelAltroPericolo.Border = false;
    
        Ext.Net.TextField txtAltroPericolo = new Ext.Net.TextField();
        txtAltroPericolo.ID = "txtALTROPERICOLO";
        txtAltroPericolo.Width = Unit.Pixel(400);
        txtAltroPericolo.Visible = false;
        txtAltroPericolo.Enabled = false;
    
        PanelAltroPericolo.Items.Add(txtAltroPericolo);
    
        Panel.Items.Add(PanelAltroPericolo);
    
        return Panel;
    }
    
    protected void AltroPericolo(object sender, DirectEventArgs e)
    {
        Ext.Net.Panel PanelAltroPericolo = FormPanelRichiesta.FindControl("PanelAltroPericolo") as Ext.Net.Panel;
        if (PanelAltroPericolo == null) return;
     
    
        Ext.Net.TextField txtAltroPericolo = PanelAltroPericolo.FindControl("txtALTROPERICOLO") as Ext.Net.TextField;
        if (txtAltroPericolo == null) return;
     
    
        Ext.Net.Panel Panel = FormPanelRichiesta.FindControl("PanelPericoli") as Ext.Net.Panel;
        if (Panel == null) return;
     
    
        Ext.Net.Checkbox chkAltroPericolo = Panel.FindControl("chkPERICOLO_ALTRO") as Ext.Net.Checkbox;
    
        if (chkAltroPericolo.Checked) {
            txtAltroPericolo.Hidden = false;
            txtAltroPericolo.Disabled = false;
        }
        else {
            txtAltroPericolo.Text = "";
            txtAltroPericolo.Hidden = true;
            txtAltroPericolo.Disabled = true;
        }
    
        PanelAltroPericolo.Render();
    
        FormPanelRichiesta.DoLayout();
    }
    </script>
    
    <asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
    </asp:Content>
    
    <asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
            <ext:Button ID="Button1" runat="server" Text="load checkbox">
                <DirectEvents>
                    <Click OnEvent="Button1_Click" ViewStateMode="Enabled"></Click>
                </DirectEvents>
            </ext:Button>
                      
             <ext:Panel ID="PanelRichiesta" runat="server" Title="Richiesta" MonitorValid="true" Border="false" ButtonAlign="Center" BodyStyle="padding:2px;" AutoScroll="true">
                <Items>  
                    <ext:FormPanel ID="FormPanelRichiesta" runat="server" Title="" Padding="5" MonitorResize="true" ButtonAlign="Center">
                        <Items>
                            <ext:Label ID="LabelMessaggio" runat="server" StyleSpec="font-weight: bold; color:red;"/>                                             
                               
                            <ext:CompositeField ID="CompositeField4" runat="server" AnchorHorizontal="100%" HideLabel="true" LabelWidth="0">
                                <Items>
                                    <ext:Label ID="Label4" runat="server" Text="Descrizione:" Width="130"></ext:Label>
                                    <ext:Label ID="Label1" runat="server" Text="*" StyleSpec="font-weight: bold; color:red;" Width="10">
                                    </ext:Label>
                                    <ext:TextArea runat="server" ID="TextAreaDescrizione" Width="700">                                                
                                    </ext:TextArea>                       
                                </Items>
                            </ext:CompositeField>
                            
                        </Items>
                        
                        <Buttons>
                            <ext:Button ID="SalvaRichiesta" runat="server" Icon="BulletGo" Text="Inserisci Richiesta" >                               
                            </ext:Button>
                        </Buttons>                                
                    </ext:FormPanel>
                </Items>
            </ext:Panel>
    </asp:Content>
  7. #7

    RE: [CLOSED] [1.0] checkbox.checked not valorized



    Many thanks, Vladimir, I changed my code with your suggest.

    Bye

Similar Threads

  1. [CLOSED] How to set checkbox node has been checked?
    By gs_user in forum 2.x Legacy Premium Help
    Replies: 4
    Last Post: Jun 21, 2012, 8:40 AM
  2. [CLOSED] Another way to check checkbox is checked ot not....
    By rosua in forum 1.x Legacy Premium Help
    Replies: 3
    Last Post: Jun 21, 2012, 5:39 AM
  3. [CLOSED] CheckBox.Checked is not getting set
    By speedstepmem3 in forum 1.x Legacy Premium Help
    Replies: 2
    Last Post: Jul 01, 2011, 11:27 AM
  4. [CLOSED] ext:CheckBox.checked property funnies
    By daneel in forum 1.x Legacy Premium Help
    Replies: 1
    Last Post: Jul 06, 2010, 2:20 PM
  5. Checked checkbox (Client)
    By Kaido in forum 1.x Help
    Replies: 0
    Last Post: Jul 13, 2009, 6:08 AM

Posting Permissions