[CLOSED] get value of controls created in code-behind

Page 2 of 2 FirstFirst 12
  1. #11
    Geoffrey McGill
    Founder
  2. #12
    Hi,

    You don't have the form therefore there is no automatic submit of the fields (requests don't pass to the server any information)
    You have to add the form or pass required information via ExtraParams
  3. #13
    I added form and tested it again. still not working. if I remove Autorender='false' in ext:window, then I get error htmlfile:unknow funtime error."t.innerHTML=q(v)
    I reposted code below. Hopefully it is better this time.

    <%@ Page Language="C#"%>
    <%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext"%>
     <script runat="server">  
    Protected void CreateFilterForm(object sender, DirectEventArgs e) 
    { 
    newFormPanel 
    { 
    ID = "FormPanel1", 
    Padding = 5, 
    LabelWidth = 120, 
    Height = 220 
    }.Render(this.winFilter, RenderMode.AddTo); 
     
     
    new Ext.Net.TextField() 
    { 
    ID = "txtPharmacy", 
    FieldLabel = "Pharmacy", 
    }.Render("FormPanel1", RenderMode.AddTo); 
     
    winFilter.Show(); 
    } 
     
     
     
    [DirectMethod(Namespace="CompanyX")] 
    publicvoid GetReport() 
    { 
    var x = X.GetCmp<TextField>("txtPharmacy").Text; 
    X.Msg.Alert("", x).Show(); 
    } 
    </script>  
    <!DOCTYPE html PUBLIC"-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <htmlxmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
    </head>
    <body>
    <form runat="server">
    <ext:ResourceManagerID="ResourceManager1" runat="server">
    </ext:ResourceManager>
    <ext:ButtonID="btnTest" runat="server" Text="Dynamically Generate Controls">
    <DirectEvents>
    <ClickOnEvent="CreateFilterForm">
    </Click>
    </DirectEvents>
    </ext:Button>
    <ext:WindowID="winFilter" runat="server" Title="Report" Icon="Magnifier" Closable="false" 
    Width="300" Height="250" Resizable="false" BodyStyle="background-color:#fff;"
    Hidden="true" AutoShow="false" AutoRender="false" Modal="true" Layout="Form">
    <BottomBar>
    <ext:ToolbarID="Toolbar1" runat="server">
    <Items>
    <ext:ButtonID="btnGetReport" runat="server" Text="Get Report" Icon="ReportStart">
    <Listeners>
    <ClickHandler="CompanyX.GetReport()"/>
    </Listeners>
    </ext:Button>
    <ext:ButtonID="btnCancel" runat="server" Text="Cancel">
    <Listeners>
    <ClickHandler="FormPanel1.destroy();winFilter.hide()"></Click>
    </Listeners>
    </ext:Button>
    </Items>
    </ext:Toolbar>
    </BottomBar>
    </ext:Window>
    </form>
    </body>
    </html>
  4. #14
    Geoffrey McGill
    Founder
  5. #15
    I added form and tested it again. still not working.
    if I remove Autorender='false' in ext:window, then I get error htmlfile:unknow funtime error."t.innerHTML=q(v)
    I reposted code below. Hopefully it is better this time.


    <%@ Page Language="C#"%>
    <%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext"%> 
    <script runat="server">   
    protected void CreateFilterForm(object sender, DirectEventArgs e)
        {
            new FormPanel
            {
                ID = "FormPanel1",
                Padding = 5,
                LabelWidth = 120,
                Height = 220
            }.Render(this.winFilter, RenderMode.AddTo);
     
            new Ext.Net.TextField()
           {
               ID = "txtPharmacy",
               FieldLabel = "Pharmacy (NCPDPID)",
           }.Render("FormPanel1", RenderMode.AddTo);
     
           winFilter.Show();
        }
    [DirectMethod(Namespace="CompanyX")]
        public void GetReport()
        {
            var x = X.GetCmp<TextField>("txtPharmacy").Text;
            X.Msg.Alert("", x).Show();
        }
    </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 runat="server">
    </head>
    <body>
    <form runat="server">
        <ext:ResourceManager ID="ResourceManager1" runat="server">
        </ext:ResourceManager>
        <ext:Button ID="btnTest" runat="server" Text="Dynamically Generate Controls">
            <DirectEvents>
                <Click OnEvent="CreateFilterForm">
                </Click>
            </DirectEvents>
        </ext:Button>
        <ext:Window ID="winFilter" runat="server" Title="Report" Icon="Magnifier" Closable="false"
            Width="300" Height="250" Resizable="false" BodyStyle="background-color:#fff;"
            Hidden="true" AutoShow="false" Modal="true" Layout="Form">
            <BottomBar>
                <ext:Toolbar ID="Toolbar1" runat="server">
                    <Items>
                        <ext:Button ID="btnGetReport" runat="server" Text="Get Report" Icon="ReportStart">
                            <Listeners>
                                <Click Handler="CompanyX.GetReport()" />
                            </Listeners>
                        </ext:Button>
                        <ext:Button ID="btnCancel" runat="server" Text="Cancel">
                            <Listeners>
                                <Click Handler="FormPanel1.destroy();winFilter.hide()"></Click>
                            </Listeners>
                        </ext:Button>
                    </Items>
                </ext:Toolbar>
            </BottomBar>
        </ext:Window>
    </form>
    </body>
    </html>
  6. #16
    Hi,

    You have to set RenderFormElement = false for the FormPanel or place FormPanel to the Items collection of the Window (in this case the automatically set that property)
        protected void CreateFilterForm(object sender, DirectEventArgs e)
        {
            var f = new FormPanel
            {
                ID = "FormPanel1",
                Padding = 5,
                LabelWidth = 120,
                Height = 220,
                Items = {
                   new Ext.Net.TextField()
                   {
                       ID = "txtPharmacy",
                       FieldLabel = "Pharmacy (NCPDPID)",
                   }
                }
            };
    
            winFilter.Items.Add(f);
            f.Render();
      
            winFilter.Show();
        }
  7. #17
    It works. thanks!!!!!
  8. #18
    Hi I have to reopen this topic. I updated the latest SVN and added the code vladimir suggested. X.GetCmp works great at this scenario
    Yet, the code previously worked are throwing error at "eval(result.script)" error is: Microsoft JScript compilation error: Expected ';'
    "if(result.script&&result.script.length>0){(functi on(o,result,response){eval(result.script);}).call( window,o,result,response);}"
    maybe something I am missing when creating the fieldset and checkbox? thanks for your help!!


    add fieldsets and checkboxgroup into each fieldset in code behind
     
    for (int i = 0; i < 3; i++)
                {              
                    var fs = new Ext.Net.FieldSet();
                    fs.Collapsed = true;
                    fs.Collapsible = true;
                    fs.AutoHeight = true;
                    fs.LabelWidth = 1;
                    fs.Layout = "Form";              
                    fs.ID = "fs"+ i;
                    pnlFtypes.Items.Add(fs);
                    var ckgroup = new Ext.Net.CheckboxGroup();
                    ckgroup.ColumnsNumber = 3;
                    fs.Items.Add(ckgroup);
                    for (int j = 0; j < 14; j++)
                    {
                        var ckbox = new Ext.Net.Checkbox();
                        ckbox.BoxLabel = j;
                        ckbox.ID = "ck" + j;  
                        ckgroup.Items.Add(ckbox);
                    }
     }
    code to reset checkbox and fieldset where the above error throws.
    for (int i = 0; i < 3; i++)
     { 
         for (int j = 0; j < 14; j++)
           {    
             X.GetCmp<Checkbox>("ch"+j).Checked = false;
             X.GetCmp<Checkbox>("ch"+j).Disabled = false;
           }
             X.GetCmp<FieldSet>("fs"+i).Collapsed = true;
     
     }
  9. #19
    Hi,

    Please provide full test sample. I don't think that your code works correctly because you set the same IDs for checkboxes in the different FieldSets
    ckbox.ID = "ck" + j;
Page 2 of 2 FirstFirst 12

Similar Threads

  1. Replies: 1
    Last Post: Nov 15, 2011, 4:48 PM
  2. [CLOSED] How to clean up dynamically created controls?
    By jchau in forum 1.x Legacy Premium Help
    Replies: 3
    Last Post: Aug 23, 2011, 9:51 AM
  3. [CLOSED] Unable to access dynamically created controls
    By rnachman in forum 1.x Legacy Premium Help
    Replies: 1
    Last Post: Apr 07, 2011, 5:49 AM
  4. Replies: 6
    Last Post: Jun 18, 2010, 4:23 PM
  5. Dynamically created controls cookbooks
    By arodier in forum 1.x Help
    Replies: 15
    Last Post: May 07, 2010, 7:12 PM

Posting Permissions