簡體   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