2017-10-17 47 views
2

我有一個帶有一些輸入的aspx頁面。 在一方面,我有以下兩個輸入捕捉的日期範圍:如何使用參數填充下拉列表ASP.NET

<asp:TextBox ID="bDate" runat="server" TextMode="Date"></asp:TextBox> 
<asp:TextBox ID="eDate" runat="server" TextMode="Date"></asp:TextBox> 

,並在頁面的底部,我認爲應該充滿查詢像

select xxx from table where beginDate >= bDate and endDate <= eDate 
下拉

目標是讓此下拉列表正確填充,無需單擊任何按鈕。

PS:我有頁面加載和查詢正確運行(只選擇)的所有代碼,所以我應該只想知道 知識來完成這項工作。

回答

0

如果兩者都有值,則可以在一個(或兩個)文本框上使用OnTextChanged="DateTextChanged_OnTextChanged"

<asp:TextBox ID="bDate" runat="server" TextMode="Date" OnTextChanged="DateTextChanged_OnTextChanged" AutoPostBack="true"/> 
<asp:TextBox ID="eDate" runat="server" TextMode="Date" OnTextChanged="DateTextChanged_OnTextChanged" AutoPostBack="true"/> 

然後確認他們的值在後面的代碼,如果他們做調用業務邏輯來獲取信息綁定到你的下拉列表。

protected void DateTextChanged_OnTextChanged(object sender, EventArgs e) 
{ 
    // do validation run query  
} 

注意:這與回發將重新加載屏幕,以便您可能想要使用更新面板或類似的東西。

希望幫助

+0

它的工作原理!謝謝,我不知道atriute onTextChanged – user2662073

+0

@ user2662073很好聽! :) –

0

如果你有一個名爲ddlSubject DropDownList的,你必須做到:

var query = select xxx from table where beginDate >= bDate and endDate <= eDate 

ddlSubject.DataSource = query ; 
ddlSubject.DataTextField = "SubjectNamne"; 
ddlSubject.DataValueField = "SubjectID"; 
ddlSubject.DataBind(); 

如果是或不是回發過程中要注意:What is a postback?

因爲這可以完全清理你的DropDownList。