2017-10-17 45 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。