如何在组合框中设置默认空值

时间:2013-11-13 06:58:23

标签: c# asp.net combobox

dr = new MySqlDataAdapter("select tvl_code, 
   concat_ws(',', tvl_code, citi_name) citiname 
   from code_desc where travel_mode = 'BUS'", conn);
ds1 = new DataSet();
dr.Fill(ds1);
ddlfrom.DataSource = ds1;
ddlfrom.DataTextField = "citiname";
ddlfrom.DataValueField = "tvl_code";
ddlfrom.DataBind();

通过这段代码我将我的组合框绑定到数据库,我可以从我的数据库中填充组合框。但是当我打开页面时,组合框默认包含一个值来自数据库。我在其中填充的数据库列表显示在组合框上。我想在组合框上显示空白。意味着它不应该显示任何打印,直到我将从下拉列表中选择一些东西。如何做到这一点.. ??

6 个答案:

答案 0 :(得分:1)

试试这个:

ddlfrom.Items.Insert(0, "Select...");

像这样:

dr = new MySqlDataAdapter("select tvl_code, concat_ws(',', tvl_code, citi_name) citiname from code_desc where travel_mode = 'BUS'", conn);
ds1 = new DataSet();
dr.Fill(ds1);
ddlfrom.DataSource = ds1;
ddlfrom.DataTextField = "citiname";
ddlfrom.DataValueField = "tvl_code";
ddlfrom.DataBind();
ddlfrom.Items.Insert(0, "Select...");

答案 1 :(得分:0)

您可以像这样定义标记:

<asp:DropDownList AppendDataBoundItems="true" runat="server"  DataTextField="Text" DataValueField="Id">
    <asp:ListItem Text="Select..." Value="" />   
</asp:DropDownList>

通过使用AppendDataBoundItems="true",您可以使用静态元素追加绑定集合。

我更喜欢这种方法在您的业务逻辑中添加“假”元素,因为如果您的查询的其他消费者不需要伪值,它会使您的逻辑更具可重用性。此外,默认值听起来更像是UI问题,而不是数据问题。

答案 2 :(得分:0)

您可以在实际数据

之前附加空行
dr = new MySqlDataAdapter("select null, null union select tvl_code, concat_ws(',', tvl_code, citi_name) citiname from code_desc where travel_mode = 'BUS'", conn);
...

答案 3 :(得分:0)

由于您的示例代码位于代码

之后
// do the databinding
dr.Fill(ds1);

DataRow row = ds1.Tables[0].NewRow();
row["tvl_code"] = -1;
row["citiname"] = "Select City";

// insert the row at the top of the table
ds1.Tables[0].Rows.InsertAt(row, 0);

ddlfrom.DataSource = ds1;
ddlfrom.DataTextField = "citiname";
ddlfrom.DataValueField = "tvl_code";
ddlfrom.DataBind();

希望这有帮助

答案 4 :(得分:0)

您可以在数据绑定代码

之后添加以下语句
ddlfrom.Items.Insert(-1,new ListItem("TEXT","-1"));

答案 5 :(得分:0)

要在下拉列表中添加空白值,您可以在绑定控件后添加以下代码:

ddlfrom.Items.Insert(-1,new ListItem("","-1"));

这将在-1索引处添加一个带-1值的空白文本,意思是在顶部。