繁体   English   中英

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

[英]how to set default null value in 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();

通过此代码,我可以将组合框绑定到数据库,并且可以从数据库中填充组合框。但是当我打开页面时,组合框默认包含数据库中的一个值..表示数据库列表中的名字我要在其中填充的位置显示在combobox上。我想在combobox上显示空白。意味着它不应该显示任何已打印的内容,直到我从下拉列表中选择某些内容为止。

尝试这个:

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...");

您可以这样定义标记:

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

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

我更喜欢这种方法在业务逻辑中添加一个“假”元素,因为如果您有其他不需要虚假值的查询使用者,它会使您的逻辑更具可重用性。 同样,默认值听起来更像是UI关注而不是数据关注。

您可以在实际数据之前附加空行

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);
...

由于您的示例代码在后面的代码中

// 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();

希望这可以帮助

您可以在数据绑定代码之后添加以下语句

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

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

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

这将在顶部的-1索引处添加带有-1值的空白文本。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM