"SqlDataSource" with combobox to select

  1. #1

    "SqlDataSource" with combobox to select

    Good afternoon,

    I am working with two combos and two "SqlDataSource".
    These are the following problems:

    1. When selecting a value for the first time in the "ComboBox1" the value that was assigned to "ComboBox2" gives it null and not know why.

    2. I select another value again, and in the "Listeners" and not heard so I can not call the method "reload ()" the "store".

    V Ext.Net 2.1

    server-side
    <script runat="server">
    
        protected void stCombo2_ReadData(object sender, StoreReadDataEventArgs e)
        {
            SqlCombo2.SelectParameters["id"].DefaultValue = ComboBox1.SelectedItem.Text;
        }
     
    </script>
    the client side
     
            <asp:SqlDataSource ID="SqlCombo2" runat="server" ConnectionString="<%$ ConnectionStrings:Conn %>"
                SelectCommand="SELECT id, Name FROM Table2 WHERE id = @id">
                <SelectParameters>
                    <asp:Parameter Name="id" DefaultValue="" />
    
                </SelectParameters>
            </asp:SqlDataSource>
            <asp:SqlDataSource ID="SqlCombo1" runat="server" ConnectionString="<%$ ConnectionStrings:Conn %>"
                SelectCommand="SELECT id , Name FROM Table1" />
    
            <ext:store id="stCombo2" runat="server" datasourceid="SqlCombo2" showwarningonfailure="false" onreaddata="stCombo2_ReadData">
                <Model>
                    <ext:Model ID="Model2" runat="server" IDProperty="id"
                        Name="IdName">
                        <Fields>
                            <ext:ModelField Name="Id" Mapping="id" Type="Int" />
                            <ext:ModelField Name="Name" Mapping="Name" Type="String" />
                        </Fields>
                    </ext:Model>
                </Model>
                <Sorters>
                    <ext:DataSorter Property="id" Direction="ASC" />
                </Sorters>
                <Listeners>
                    <Load Handler="#{ComboBox2}.setValue(this.getAt(0).get(#{ComboBox2}.valueField));" /
                </Listeners>
            </ext:store>
    
            <ext:store id="stCombo1" runat="server" datasourceid="SqlCombo1" showwarningonfailure="false">
                <Model>
                    <ext:Model ID="Model3" runat="server" IDProperty="id"
                        Name="IdName2">
                        <Fields>
                            <ext:ModelField Name="id" Mapping="id" Type="Int" />
                            <ext:ModelField Name="Name" Mapping="Name" Type="String" />
                        </Fields>
                    </ext:Model>
                </Model>
                <Sorters>
                    <ext:DataSorter Property="id" Direction="ASC" />
                </Sorters>
            </ext:store>
    
            <ext:panel runat="server" region="Center" width="400" height="400">
                        <Items>
                       <ext:ComboBox ID="ComboBox1" runat="server" StoreID="stCombo1" DisplayField="Name"
                                                    ValueField="Id"     >  
                                                    <Listeners> 
                                                        <Select Handler="#{stCombo2}.reload(); #{ComboBox2}.clearValue();" /> 
                                                    </Listeners>
                                                </ext:ComboBox>
                       <ext:ComboBox ID="ComboBox2" runat="server" StoreID="stCombo2" DisplayField="Name"
                                                    ValueField="Id"  />
                                
                        </Items>
             </ext:panel>
    Last edited by billy; Feb 22, 2013 at 9:37 PM.
  2. #2
    Hi,

    Maybe you need to call SqlCombo2.Render(); after setting the SelectParameters.

    Hope this helps.
    Geoffrey McGill
    Founder
  3. #3
    Attachment 5699
    Quote Originally Posted by geoffrey.mcgill View Post
    Hi,

    Maybe you need to call SqlCombo2.Render(); after setting the SelectParameters.

    Hope this helps.
    Thanks for the prompt reply, but I would like to analyze the following:

    The problem is this:

    1. Selecting the ComboBox1 to assign the value to ComboBox2, the first gives it zero, this is because it runs from a gridPanel RowEditing as you see in the image.

    2. If you look at the region having Panel2 East, the work combox normal.

    My question is, why is that?.



    
    <script runat="server">
        protected void stCombo2_ReadData(object sender, Ext.Net.StoreReadDataEventArgs e)
        {
            SqlCombo2.SelectParameters["id1"].DefaultValue = ComboBox1.SelectedItem.Value;
        }
    
        protected void stCombo3_ReadData(object sender, Ext.Net.StoreReadDataEventArgs e)
        {
            SqlCombo3.SelectParameters["id1"].DefaultValue = ComboBox3.SelectedItem.Value;
        }
    </script>
    <!DOCTYPE html>
    
    <%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext" %>
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head id="Head1" runat="server">
        <title></title>
        <ext:XScript ID="XScript1" runat="server">
            <script>
                var addEmployee = function () {
                    var grid = #{GridPanel1};
                    grid.editingPlugin.cancelEdit();
    
                    var r = Ext.ModelManager.create({
                       
                    }, 'Employee');
    
                    grid.store.insert(0, r);
                    grid.editingPlugin.startEdit(0, 0);
                };
                
            </script>
        </ext:XScript>
    </head>
    <body>
        <form id="form1" runat="server">
            <ext:ResourceManager ID="ResourceManager1" runat="server" /> 
            <asp:SqlDataSource ID="SqlCombo1" runat="server" ConnectionString="<%$ ConnectionStrings:connSi %>"
                SelectCommand="SELECT id1 , Name FROM Table_1" />
            <asp:SqlDataSource ID="SqlCombo2" runat="server" ConnectionString="<%$ ConnectionStrings:connSi %>"
                SelectCommand="SELECT id2, Name FROM Table_2 WHERE id1 = @id1">
                <SelectParameters>
                    <asp:Parameter Name="id1" DefaultValue="" />
                </SelectParameters>
            </asp:SqlDataSource> 
            <asp:SqlDataSource ID="SqlCombo3" runat="server" ConnectionString="<%$ ConnectionStrings:connSi %>"
                SelectCommand="SELECT id2, Name FROM Table_2 WHERE id1 = @id1">
                <SelectParameters>
                    <asp:Parameter Name="id1" DefaultValue="" />
                </SelectParameters>
            </asp:SqlDataSource> 
                <asp:SqlDataSource ID="SqlCombo4" runat="server" ConnectionString="<%$ ConnectionStrings:connSi %>"
                SelectCommand="SELECT id3, id1, id2 FROM Table_3"  /> 
            <ext:Store ID="stCombo1" runat="server" DataSourceID="SqlCombo1" ShowWarningOnFailure="false">
                <Model>
                    <ext:Model ID="Model3" runat="server" IDProperty="id1"
                        Name="Idnombre2">
                        <Fields>
                            <ext:ModelField Name="id1" Mapping="id1" Type="Int" />
                            <ext:ModelField Name="Name" Mapping="Name" Type="String" />
                        </Fields>
                    </ext:Model>
                </Model>
                <Sorters>
                    <ext:DataSorter Property="id1" Direction="ASC" />
                </Sorters>
            </ext:Store> 
            <ext:Store ID="stCombo2" runat="server" DataSourceID="SqlCombo2" ShowWarningOnFailure="false" OnReadData="stCombo2_ReadData">
                <Model>
                    <ext:Model ID="Model2" runat="server" IDProperty="id2"
                        Name="Idnombre">
                        <Fields>
                            <ext:ModelField Name="id2" Mapping="id2" Type="Int" />
                            <ext:ModelField Name="Name" Mapping="Name" Type="String" />
                        </Fields>
                    </ext:Model>
                </Model>
                <Sorters>
                    <ext:DataSorter Property="id2" Direction="ASC" />
                </Sorters>
            </ext:Store>
    
            <ext:Store ID="stCombo3" runat="server" DataSourceID="SqlCombo3" ShowWarningOnFailure="false" OnReadData="stCombo3_ReadData">
                <Model>
                    <ext:Model ID="Model4" runat="server" IDProperty="id2"
                        Name="Idnombre">
                        <Fields>
                            <ext:ModelField Name="id2" Mapping="id2" Type="Int" />
                            <ext:ModelField Name="Name" Mapping="Name" Type="String" />
                        </Fields>
                    </ext:Model>
                </Model>
                <Sorters>
                    <ext:DataSorter Property="id2" Direction="ASC" />
                </Sorters>
            </ext:Store>
            <ext:Store ID="Store1" runat="server" DataSourceID="SqlCombo4">
                <Sorters>
                    <ext:DataSorter Property="start" Direction="ASC" />
                </Sorters>
                <Model>
                    <ext:Model ID="Model1" runat="server" Name="Employee">
                        <Fields>
                            <ext:ModelField Name="id3" Mapping="id3" Type="Int" />
                            <ext:ModelField Name="id1" Mapping="id1" Type="Int" />
                            <ext:ModelField Name="id2" Mapping="id2" Type="Int" /> 
                        </Fields>
                    </ext:Model>
                </Model>
            </ext:Store> 
            <ext:Viewport ID="Viewport1" runat="server" Layout="BorderLayout">
                <Items>
                    <ext:Panel ID="Panel1" runat="server" Layout="FitLayout" Region="Center">
                        <Items>
                            <ext:GridPanel
                                ID="GridPanel1" runat="server" Width="800"
                                Height="400" Frame="true" Title="Employees" StoreID="Store1"> 
                                <Plugins>
                                    <ext:RowEditing ID="RowEditing1" runat="server" ClicksToMoveEditor="1" AutoCancel="false" />
                                </Plugins>
                                <TopBar>
                                    <ext:Toolbar ID="Toolbar1" runat="server">
                                        <Items>
                                            <ext:Button ID="Button1" runat="server" Text="Add Employee" Icon="UserAdd">
                                                <Listeners>
                                                    <Click Fn="addEmployee" />
                                                </Listeners>
                                            </ext:Button>
                                        </Items>
                                    </ext:Toolbar>
                                </TopBar>
                                <ColumnModel>
                                    <Columns>
                                        <ext:RowNumbererColumn ID="RowNumbererColumn1" runat="server" Width="25" />
                                        <ext:Column ID="Column1" runat="server" Text="id3" DataIndex="id3" Flex="1">
                                            <Editor>
                                                <ext:TextField ID="TextField1" runat="server" AllowBlank="false" />
                                            </Editor>
                                        </ext:Column>
                                        <ext:Column ID="id1" runat="server" Text="Name1" DataIndex="id1" Width="160">
                                            <Editor>
                                                <ext:ComboBox ID="ComboBox1" runat="server" StoreID="stCombo1" DisplayField="Name"
                                                    ValueField="id1">
                                                    <Listeners>
                                                        <Select Handler="#{ComboBox2}.clearValue(); #{stCombo2}.reload(); " />
                                                    </Listeners>
                                                </ext:ComboBox>
                                            </Editor>
                                        </ext:Column>
                                        <ext:Column ID="id2" runat="server" Text="Name2" DataIndex="id2" Width="160">
                                            <Editor>
                                                <ext:ComboBox ID="ComboBox2" runat="server" StoreID="stCombo2" DisplayField="Name"
                                                    ValueField="id2" />
                                            </Editor>
                                        </ext:Column> 
                                    </Columns>
                                </ColumnModel>
                            </ext:GridPanel>
                        </Items>
                    </ext:Panel>
                    <ext:Panel ID="Panel2" runat="server" Region="East" Width="400">
                        <Items>
                            <ext:ComboBox ID="ComboBox3" runat="server" StoreID="stCombo1" DisplayField="Name"
                                ValueField="id1">
                                <Listeners>
                                    <Select Handler="#{ComboBox4}.clearValue(); #{stCombo3}.reload(); " />
                                </Listeners>
                            </ext:ComboBox>
                            <ext:ComboBox ID="ComboBox4" runat="server" StoreID="stCombo3" DisplayField="Name"
                                ValueField="id2" />
                        </Items>
                    </ext:Panel>
                </Items>
            </ext:Viewport>
        </form>
    </body>
    </html>
    Last edited by billy; Feb 24, 2013 at 10:55 PM.

Similar Threads

  1. [CLOSED] How does "MaskCls" work for "AutoLoad" mask in panel control
    By leon_tang in forum 1.x Legacy Premium Help
    Replies: 5
    Last Post: Jul 19, 2012, 12:09 PM
  2. Replies: 1
    Last Post: Jun 26, 2012, 11:29 AM
  3. Replies: 5
    Last Post: May 02, 2012, 5:37 PM
  4. Replies: 4
    Last Post: Oct 11, 2011, 2:42 AM
  5. Replies: 2
    Last Post: Jun 26, 2011, 1:59 AM

Posting Permissions