Gridview和asp.net下拉列表,添加全选

时间:2014-09-30 10:06:45

标签: c# sql asp.net sql-server gridview

我目前有一个下拉列表,它是从SQL Server表中的SQLDatasource填充的,名为"用户"

select s.id, s.Forename + ' ' + s.Surname as Name from User s
where s.Active = '1'
Order by Name

然后我有一个gridview,它根据下拉列表中所选用户的ID显示结果

我想添加一个"选择所有用户"下拉菜单中的选项,以便检索所有用户并在gridview中显示

Gridview SQL

select sup.id, p.plan_name, sup.document_name, sup.Expiry_Date from 
User_Plan sup
join Plan_Type p on p.id = sup.Plan_Type_ID

where sup.User_ID = @sid and sup.Active = '1' and sup.Expiry_Date >= GETDATE() 

这里最好的方法是什么?

你可以在下拉列表中添加一些东西,以便@sid能够带回所有结果吗?

干杯,

2 个答案:

答案 0 :(得分:0)

试试这个

yourDropDown.Items.Insert(0, new ListItem("Select ALl", "2"));

此处2是项目的值,因此您可以提供任何您想要的值,以便从数据库中获取所有记录。

答案 1 :(得分:0)

试试这个

在带有0索引(Sid)和

的下拉列表中插入--Select All Users--
DropDown.Items.Insert(0, new ListItem("--Select All Users--"));

SQL查询

select sup.id, p.plan_name, sup.document_name, sup.Expiry_Date from 
User_Plan sup
join Plan_Type p on p.id = sup.Plan_Type_ID

where sup.User_ID = Case When @sid=0 Then sup.User_ID else @sid end 
and sup.Active = '1' and sup.Expiry_Date >= GETDATE()

我假设Dropdown的DataValuefield是User_Id并且已在SQL查询中通过,如果@sid为0,则上面将选择所有用户,或者仅基于{{ {1}}值