如何使用参数ASP.NET填充下拉列表

时间:2017-10-17 08:41:30

标签: javascript c# jquery asp.net

我有一个带有一些输入的aspx页面。 一方面,我有以下两个输入来捕捉日期范围:

<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:我在页面加载和查询正确运行的所有代码(只选择)所以我只想知道 知识要做到这一点。

2 个答案:

答案 0 :(得分: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     
}

注意:回发后会重新加载屏幕,因此您可能需要使用更新面板或类似内容。

希望有所帮助

答案 1 :(得分: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();

如果是或不是PostBack流程,请小心:What is a postback?

因为这可以完全清除DropDownList。