我有一个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
答案 0 :(得分:1)
您需要将AppendDataBoundItems属性设置为true以保留DDL中的现有值:
如果您希望使用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)”。