0

SQL Server のテーブルから値を取得する DropDownList があります。ユーザーの選択に基づいてドロップダウンリストに値のリストを入力するだけでなく、何かを変更する必要がある場合に備えて、テーブルの残りの内容も表示します。例:

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

DDL の既存の値を保持するには、AppendDataBoundItems プロパティを true に設定する必要があります。

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

なぜ 2 つのドロップダウン リストが必要なのか、それぞれに何が含まれているのかわかりません。

テーブルのすべての値を含むドロップダウン リストが必要なだけで、その値が以前に選択された値であることを示す場合は、単に "ddl.SetSelectedValue(somevalue)" と言います。

于 2012-04-30T13:42:19.737 に答える
0

SelectedIndexChange イベント メソッドで、次のように記述します。

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