C# 绑定下拉列表

C# 绑定下拉列表,c#,asp.net,C#,Asp.net,我正在做一个报告,根据一些搜索参数在网格视图中显示记录。在这种情况下,一个搜索过滤器是带有年份值的下拉列表。下拉列表应包含从2000年到当前年份的年份。如果年份发生变化,它将自动绑定下一年。 我怎样才能做到这一点呢?也许我没有正确理解你的问题,但看起来你只是在“绑定”一个简单的下拉列表,以获得一些年份值。如果是这样的话,我会把下面的内容放到你的页面中 if (!IsPostBack) { for(int i = 2000, i <= DateTime.Now.Year; i++)

我正在做一个报告,根据一些搜索参数在网格视图中显示记录。在这种情况下,一个搜索过滤器是带有年份值的下拉列表。下拉列表应包含从2000年到当前年份的年份。如果年份发生变化,它将自动绑定下一年。
我怎样才能做到这一点呢?

也许我没有正确理解你的问题,但看起来你只是在“绑定”一个简单的下拉列表,以获得一些年份值。如果是这样的话,我会把下面的内容放到你的页面中

if (!IsPostBack)
{
  for(int i = 2000, i <= DateTime.Now.Year; i++)
  {
    MyDropDownList.Items.Add(i.ToString());
  }
  //Select the current year initially
  MyDropDownList.SelectedIndex = MyDropDownList.Items.Count - 1;
}

//Later on in your Page_Load
MyGridView.DataSource = MyMethodOfFetchingData(MyDropDownList.SelectedValue);
MyGridView.DataBind();
此时,在检索要显示的数据时,需要使用MyDropDownList.SelectedValue

编辑: 添加了当前年份的默认选择。

使用日期。今天,您需要向我们提供更多信息,但VB.NET/C中有大量引用当前年份的变量

Me.MyDropDownList.Items.FindByValue(CType(Today.Year, String)).Selected=True
[编辑部分]

以上是将价值绑定到当前年度。请注意,将年份存储在数据库中可能是值得的,从2000年开始,直到某个最大数字,然后检索行:

SELECT TheYear FROM YourTable WHERE TheYear <= YEAR(GetDate())

这将回到2000年,直到今年。这将使代码可重用,因为您可以将行绑定到某个数据集或数据控件。它还可以避免在页面加载事件中出现奇怪的for循环。

我不完全确定您的意图,但我认为这很接近:

基本上有3个组成部分:

asp:DropDownList id="ddl1"
asp:SqlDataSource
asp:GridViewControl 
将数据源配置为在WHERE子句中使用ddl1.SelectedValue。参数来源:控件,值=ddl1.SelectedValue

将网格视图绑定到数据源


此时,获取所需内容的最简单方法是在ddl1上启用AutoPostBack,让神奇的事情自行发生。

您好,谢谢您的回复。如何在C中访问此值?因为我必须发送这个作为搜索参数,这是好朋友。但您并没有为数据项分配任何值。只需添加文本值即可。那么我们如何使用.SelectedValue属性?MyDropDownlist.Items.FindByValueToday.Year.ToString.Selected=True;我在下面提到过。此外,如果用户指定了搜索条件,他会选择日期并以此方式设置SelectedValue。在获取数据之前,检查SelectedValue是否已设置是一个很好的步骤。是否有任何类实现此功能?自动回发将导致页面刷新,数据绑定应自动控制。您不需要编写任何代码,只需在设计器中配置属性即可。