Sql Server查询DropDownList选择的值

时间:2012-04-30 13:32:02

标签: asp.net sql-server vb.net tsql

我有一个DropDownList,它从sql server中的表中提取值。我希望下拉列表根据用户的选择填充值列表,但是如果需要更改某些内容,还要显示表格其余部分的内容。例如:

ddl1的值为:1,2,3,4,5用户选择5,因此ddl2中显示的值为5,但如果你扩展ddl2,你还会看到一,二,三,四的值......

这是我的加载事件中的代码......

 If Not IsPostBack Then
      result = dal.dbConnect(DAL.dbType.SqlServer, ConfigurationManager.AppSetting("SQLServerConnection"))
        If result = "Successful" Then
          Try
            dt = dal.ExecuteSelectStoredProc(DAL.dbType.SqlServer, "StoredProc1", "@obj1", DropDownList1.Text)
            DropDownList2.DataSource = dt
            DropDownList2.DataTextField = dt.Columns.Item(1).ToString
            DropDownList2.DataBind()
            Catch ex As Exception
            End Try
         End If
    End If

存储过程......

 USE [DB1]
    GO
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    ALTER PROCEDURE [dbo].[StoredProc1]
    @obj1 nvarchar(4)
    AS
    BEGIN
    SET NOCOUNT ON;
    SELECT [Obj1], [obj2]
    FROM [DB1].[dbo].[Code]
    WHERE [obj1] = @obj1
    END

3 个答案:

答案 0 :(得分:1)

您需要将AppendDataBoundItems属性设置为true以保留DDL中的现有值:

http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.listcontrol.appenddatabounditems.aspx

如果您希望使用DDL实现级联效果,请看一下:

http://www.codersbarn.com/post/2007/07/21/Code-Snippet-Cascading-DropDownLists.aspx

答案 1 :(得分:0)

SelectedIndex更改事件方法中,请写下以下内容:

ddl2.SelectedValue = ddl1.SelectedValue;

答案 2 :(得分:0)

我不清楚你为什么要有两个下拉列表,或每个下拉列表。

如果您只想要一个包含表中所有值的下拉列表,但显示的值是先前选择的值,请说“ddl.SetSelectedValue(somevalue)”。