0

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

ddl1 的值为:1, 2, 3, 4, 5 用户选择 5,所以 ddl2 中显示的值为 5,但如果您展开 ddl2 您还会看到值 1、2、3、4...

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

 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
4

3 回答 3

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

于 2012-04-30T13:37:47.420 回答
0

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

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

于 2012-04-30T13:42:19.737 回答
0

在您的SelectedIndexChange 事件方法中,编写以下内容:

ddl2.SelectedValue = ddl1.SelectedValue;
于 2012-04-30T13:35:13.563 回答