根据asp.net c中的文本框值更改下拉列表项

时间:2018-05-16 14:51:09

标签: c# asp.net sql-server

我有一个下拉列表,它将数据库列airport_names显示为项目。由于列表非常长,因此用户很难滚动和选择项目。

数据库表包含airport_codes和airport_names。现在我想放置一个文本框,用户可以在其中输入airport_code,并在下拉列表中选择生成的airport_name。

列表应包含显示的选定项目以及所有其他项目(如果单击)。

我有一个工作代码,它根据文本框代码在下拉列表中显示项目,但我也希望列表中的所有其他项目与之一起。如何实现两者。请帮忙。提前谢谢。

这是我的代码:

public DataSet get_MST_SHIPPING_PORT_frm_Code(string code)
    {
        try
        {
            cmd.Parameters.Clear();
            string sql = "select PORT_NAME from MST_SHIPPING_PORT where PORT_CODE=@CODE";

            cmd.CommandText = sql;

            cmd.Parameters.Add("@CODE", SqlDbType.Char, 5).Value = code;

            OpenConnection();

            DataSet ds = new DataSet();
            da = new SqlDataAdapter(sql, con);
            da.SelectCommand = cmd;
            da.Fill(ds);
            return ds;
        }
}

在btn点击,发生以下情况:

DataSet ds = _exportbll.get_MST_SHIPPING_PORT_frm_Code(code);
                if (ds != null)
                {
                    if (ds.Tables[0].Rows.Count > 0)
                    {
                        ddlportto.DataSource = ds.Tables[0];
                        ddlportto.DataTextField = "PORT_NAME";
                        ddlportto.DataValueField = "PORT_NAME";
                        ddlportto.DataBind();

                    }
                    else
                    {
                        lbl_msg.Text = "Invalid Code";
                    }

1 个答案:

答案 0 :(得分:0)

虽然不推荐,但由于您可能有某些商业案例,请执行以下操作: -

通过

检索所有端口的静态列表
select PORT_NAME from MST_SHIPPING_PORT

现在在此列表中,使用可用的各种插件(例如jQuery autocomplete)实现autosuggest,这将插入正在键入的值并使用相应的值填充下拉列表。

将值作为静态列表检索,您将在输入的每个值上保存多次到DB的行程,这也适用于您的应用程序的所有用户。

自动完成功能将允许用户继续输入值,结果将自动过滤。