【问题标题】:How to populate dropdown list with parameters ASP.NET如何使用参数 ASP.NET 填充下拉列表
【发布时间】:2017-10-17 08:41:30
【问题描述】:

我有一个带有一些输入的 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:我有页面加载的所有代码并且查询正确运行(仅选择)所以我只想知道 知识来完成这项工作。

【问题讨论】:

    标签: javascript c# jquery asp.net


    【解决方案1】:

    如果两个文本框都有值,您可以在其中一个(或两个)文本框上使用 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     
    }
    

    注意:这与回发将重新加载屏幕,因此您可能想要使用更新面板或类似的东西。

    希望对你有帮助

    【讨论】:

    • 它有效!谢谢,我不知道 onTextChanged 的​​属性
    • @user2662073 很高兴听到! :)
    【解决方案2】:

    如果你有一个名为 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。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-06-21
      • 1970-01-01
      • 2014-01-01
      • 1970-01-01
      • 2020-10-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多