我们可以在下拉列表末尾设置静态值吗?

时间:2015-04-20 06:40:13

标签: sql asp.net sql-server tsql

我有两个下拉列表国家和州两个列表都是从数据库填充的。在下拉列表中,我想要添加"其他"在列表的末尾。我尝试添加"其他"从数据库,但当我使用名称命令在我的下拉列表中按字母顺序显示状态的名称甚至"其他"重新排列,但我想在列表的末尾显示它。

这是我填写列表的代码

private void FillStateDDl()
{
    DataSet ds = new DataSet();
    try
    {
        SqlParameter[] sql = new SqlParameter[2];
        sql[0] = new SqlParameter("@Type", 2);
        sql[1] = new SqlParameter("@cid", drpCountry.SelectedValue);
        ds = gs.DisplayData("sp_FillDropDownList", sql);
        if (ds.Tables[0].Rows.Count > 0)
        {
            drpState.DataTextField = "statename";
            drpState.DataValueField = "sid";
            drpState.DataSource = ds;
            drpState.DataBind();
            drpState.Items.Insert(0, new ListItem("--Select State--", "-1"));
        }

    }
    catch (Exception ex)
    {
        Response.Write(ex.Message.ToString());
    }
}

4 个答案:

答案 0 :(得分:2)

您需要确保AppendDataBoundItems设置为true。

然后可以在数据源之后添加项目,如:

ddl.AppendDataBoundItems = true;
ddl.DataSource = CreateDataSource();
ddl.DataTextField="TextField";
ddl.DataValueField="ValueField";
ddl.DataBind();
ddl.Items.Add("Static value here....");

答案 1 :(得分:2)

是的,您可以在下拉列表中使用datasource设置静态值。您需要执行以下步骤:

  1. 选择下拉列表的属性,找到AppendDataBoundItems并设置AppendDataBoundItems = true。

  2. 绑定下拉列表后,在vb.net中添加以下代码行ddl.Items.Add(" Others")

  3. 也按降序排序

答案 2 :(得分:1)

在SQL中你可以做这样的事情

;WITH C AS(
    SELECT 1 AS RowId, .... -- Main query
    UNION ALL
    SELECT 2 AS RowId, ... -- Include others here 
)
SELECT * FROM C
ORDER BY RowId

答案 3 :(得分:0)

试试这个,

drpState.Items.Insert(drpState.Items.Count - 1, new ListItem("--Select State--", "-1"));