2012-06-26 47 views
0

我是新來的,除了創建一個小的Asp.net c#項目。Asp.net下拉列表有太多的項目比數據庫列表

我有一個表格,它將數據合併到數據庫表中,並且快速瀏覽datagrid,它可以重新填充from應該在該datagrid上編輯一行。
我創建了一個單獨的優先級DB表/列表來測試表單上的下拉列表,值L,VL,M,H,VH只有這些沒有添加刪除。我可以將列表拖到下拉框中,並可以看到所有5個值,但列表很大,並且包含另外45個空項目。


如果我更改ddl_priority.DataTextField =「ID」; 從上到下的列表顯示1到45然後1,2,3,4,5後來是我的價值觀,我試圖限制值與「SQL Where」但它沒有工作
我的代碼爲下拉名單是;

public void Populate_priority_dropdownlist() 
{ 
    ad = new SqlDataAdapter("select * FROM x_priority_list_tbl", con); 
    //ad = new SqlDataAdapter("select [Priority] FROM [x_priority_list_tbl] where [ID] < 7 ", con); 
    ad.Fill(ds, "s"); 
    dt = ds.Tables["s"]; 
    ddl_priority.DataSource = dt; 

    ddl_priority.DataValueField = "Priority"; 
    ddl_priority.DataTextField = "Priority"; 
    ddl_priority.DataBind(); 
} 

必須在某處設置?

+0

我們還可以看到您的標記嗎? – IrishChieftain

回答

1

我想你有一些表項與null作爲優先級(或PriorityName?)列值的值。可能你應該解決這個問題。您始終可以將where條件添加到您的選擇查詢中,以便它僅顯示具有有效PriorityName值的記錄。

ad = new SqlDataAdapter("select * FROM x_priority_list_tbl 
       WHERE PriorityName is not null and PriorityName<>''", con); 

還設置了ID爲DataValueField屬性值和設定PriorityName爲文本字段。

ddl_priority.DataValueField = "ID"; 
ddl_priority.DataTextField = "PriorityName"; 

假設你的表中有名稱IDPriorityName列。如果您的列名不同,您可以在代碼中相應地更改它。