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