c# - 从显示下拉列表不是默认值的下拉列表中捕获值

标签 c# asp.net data-binding dropdown

我想在我的 DropDown 列表中捕获所选日期,其中有五天将显示在 DropdownList 上。

我通常将默认值放在 DropDown 上,但这次不是,因为在下拉列表中我希望它始终显示当前日期和接下来的五天。但我不知道如何捕获数据。

<asp:DropDownList ID="ddldate" runat="server">
</asp:DropDownList>

protected void Page_Load(object sender, EventArgs e)
{
    List<ListItem> items = new List<ListItem>();

    for (int i = 0; i < 5; i++)
    {
        items.Add(new ListItem(
          DateTime.Now.AddDays(i).ToShortDateString(), 
          DateTime.Now.AddDays(i).ToShortDateString()));
    }
    ddldate.DataSource = items;
    ddldate.DataBind();
    ddldate.Items[0].Selected = true;
}

protected void Button1_Click(object sender, EventArgs e)
{
    string deliverytime = ddldate.SelectedValue.ToString();
    lbltest.Text = deliverytime;
}

最佳答案

您正在为每次回发重新填充 DropDownList 并重新加载页面,因此 SelectedValue 属性值可能与发布的值不同。只需检查 IsPostBack 以防止在回发时重新填充 DropDownList 数据:

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        List<ListItem> items = new List<ListItem>();

        for (int i = 0; i < 5; i++)
        {
           items.Add(new ListItem(DateTime.Now.AddDays(i).ToShortDateString(), DateTime.Now.AddDays(i).ToShortDateString()));
        }

        ddldate.DataSource = items;
        ddldate.DataBind();
        ddldate.Items[0].Selected = true;
    }
}

关于c# - 从显示下拉列表不是默认值的下拉列表中捕获值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53076426/

相关文章:

c# - 为什么反序列化时 XmlReader/XmlSerializer 会弄乱文本中的行跳转?

c# - Microsoft.CodeAnalysis.TypeKind 枚举中的 TypeKind.Submission 和 TypeKind.Module 是什么意思?

c# - 此类线程安全吗?

c# - 用于呈现图像的 ASPX 页面突然无法在 Firefox 中运行。适用于 Chrome/IE

asp.net - 路径长度太长时 TeamCity DNU 发布失败

data-binding - MvxImageViewLoader 绑定(bind)不起作用

asp.net - 如果没有绑定(bind)控件绑定(bind),Sql 数据源是否会在加载时运行选择查询?

c# - 如何将 1D 字节数组转换为保存位图的 2D 字节数组?

asp.net - 使用 ETW 捕获传入 HTTP 请求和传出 HTTP 请求

wpf - 将列表绑定(bind)到 WPF 中的列表框