Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net SQL插入始终采用dropdownlist默认值_Asp.net_Sql_Vb.net_Drop Down Menu - Fatal编程技术网

Asp.net SQL插入始终采用dropdownlist默认值

Asp.net SQL插入始终采用dropdownlist默认值,asp.net,sql,vb.net,drop-down-menu,Asp.net,Sql,Vb.net,Drop Down Menu,我有两个asp下拉列表,第二个将在第一个下拉列表具有选定值时生成选项。两个下拉列表都从数据库中获取数据。 但是,当我尝试将这两个值插入到我的表中时,第一个下拉列表项将正确插入,第二个下拉列表始终将第一个项插入到我的表中 经过一些测试,我发现第二个下拉列表没有被选中,第一个项目被插入到我的表中,因为它是默认值 顺便说一句,我的第一个下拉列表是autopostback,而第二个不是 我使用的是Microsoft Web Developer 2010 express,我使用的是Visual Basic

我有两个asp下拉列表,第二个将在第一个下拉列表具有选定值时生成选项。两个下拉列表都从数据库中获取数据。 但是,当我尝试将这两个值插入到我的表中时,第一个下拉列表项将正确插入,第二个下拉列表始终将第一个项插入到我的表中

经过一些测试,我发现第二个下拉列表没有被选中,第一个项目被插入到我的表中,因为它是默认值

顺便说一句,我的第一个下拉列表是
autopostback
,而第二个不是

我使用的是Microsoft Web Developer 2010 express,我使用的是Visual Basic

第一个下拉列表:

<asp:DropDownList ID="stockcodeddl" runat="server" AutoPostBack="True" DataSourceID="SqlDataSource1" DataTextField="stockcode" 
                    DataValueField="stockcode" Width="174px" Height="19px">
                </asp:DropDownList>
                <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
                    ConnectionString="<%$ ConnectionStrings:oakwell %>" 
                    SelectCommand="SELECT [stockcode] FROM [orders] GROUP BY [stockcode]">
                </asp:SqlDataSource>

second dropdown list:

<asp:DropDownList ID="componentddl" runat="server" DataSourceID="ComponentsByStockCode" DataTextField="component" 
                    DataValueField="stockcode" Width="174px" Height="19px" 
                    Enable="true" onchange="getComponent()" >
                </asp:DropDownList>
                <asp:TextBox ID="comtxt" runat="server"></asp:TextBox>
                <asp:SqlDataSource ID="ComponentsByStockCode" runat="server" 
                    ConnectionString="<%$ ConnectionStrings:oakwell %>" 
                    SelectCommand="SELECT component, stockcode FROM orders WHERE ([stockcode] = @stockcode) GROUP BY stockcode, component">
                    <SelectParameters>
                        <asp:ControlParameter ControlID="stockcodeddl" Name="stockcode" PropertyName="SelectedValue" />
                    </SelectParameters>
                </asp:SqlDataSource>

第二个下拉列表:
试试看


请检查数据库中的下拉绑定数据是否在init页的IsPostback中。如果没有,则在按钮事件触发之前,它将重新绑定page init函数上的下拉列表。

请发布代码以更好地理解您的问题。呃,如何发布我的代码截图??您好,您能详细介绍page init吗?我真的不明白,或者你有没有外部链接作为例子?谢谢:)请查看以下链接,了解IsPostBack属性如何在page_init或page_load fn上工作。好的,谢谢兄弟,在我的情况下,我不认为我需要使用ispostback功能,因为第一个dropdownlist将被更改超过1次。这是我的第一个dropdownlist被回发的原因,因为我希望第二个dropdownlist根据第一个dropdownlist的选择生成不同的数据。实际上我已经尝试了第二个ddl被回发,但这是一个问题,在选择一个选项并刷新页面加载后,我选择的项目消失后,默认项目将再次被选择。我已经使用dropdown2.selectedvalue解决了问题,并更改了DataValueField=“component”
dropdown2.selectedvalue 
dropdown2.selecteditem