簡體   English   中英

綁定下拉列表

[英]Binding a dropdown

我正在做一個報告,根據一些搜索參數在網格視圖中顯示記錄。 在那個搜索過濾器中,下拉菜單為年份值。 下拉菜單應包含從 2000 年到當年的年份。 如果年份發生變化,它應該自動綁定下一年。 我怎樣才能做到這一點?

可能我沒有正確理解你的問題,但看起來你只是“綁定”了一個簡單的下拉到某個年份的值。 如果是這樣,我會將以下內容放入您的 Page_Load

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。

編輯:添加了當前年份的默認選擇。

使用Date.Today ,您需要給我們提供更多信息,但是 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 (參數來源: Control, Value = ddl1.SelectedValue )

將網格視圖綁定到數據源

在這一點上,獲得所需內容的最簡單方法是在ddl1上啟用AutoPostBack ,然后讓魔法自行發生。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM