【问题标题】:SQL insert always take dropdownlist default valueSQL 插入始终采用下拉列表默认值
【发布时间】:2013-09-25 08:31:25
【问题描述】:

我有两个 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>

【问题讨论】:

  • 请发布代码以更好地理解您的问题。
  • 呃如何发布我的代码截图??

标签: asp.net sql vb.net drop-down-menu


【解决方案1】:

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

【讨论】:

  • 你好,你能详细说明一下 Page init 吗?我不太明白,或者你有示例的外部链接吗?谢谢:)
  • 请查看以下链接,了解 IsPostBack 属性如何在 page_init 或 page_load fn 上工作。 msdn.microsoft.com/en-us/library/…stackoverflow.com/questions/3620883/…
  • 好的,谢谢兄弟,在我的情况下,我认为我不需要使用 ispostback 功能,因为第一个下拉列表将更改超过 1 次
【解决方案2】:

试试

dropdown2.selectedvalue 

dropdown2.selecteditem

【讨论】:

  • 嗯,我的第一个下拉列表是回发的原因,因为我希望第二个下拉列表根据第一个下拉列表的选择生成不同的数据。
  • 其实我已经尝试过第二个 ddl 来回发,但这是一个问题,在选择一个选项并刷新页面加载后,我选择的项目消失了,将再次选择默认项目
  • 我已经使用 dropdown2.selectedvalue 解决了这个问题,并更改了 DataValueField="component"
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-07
  • 1970-01-01
  • 2011-10-02
  • 2016-06-29
相关资源
最近更新 更多