2010-01-28 37 views
1

時禁用ListBox控件中某些碼的項目我有這樣的如何結合

names 
------ 
kumar 
kiran 
ram 
bala 
---- 
anu 
sita 
geetha 
----- 
asha 
abc 
tsdf 
dsf 
sdf 
sdfrt 
sdfsdfd 
sdfdsfsdf 
-------- 

valuees的數據表我綁定我的表的ListView這樣

ListItem ddlItem; 
foreach (DataRow dr in dt.Rows) 
{ 
ddlItem = new ListItem(dr["names"].ToString()) 
lbx.Items.Add(ddlItem); 
} 

這裏連我需要綁定我的數據表除了「-----」這些值之外的所有值。 它應該處於禁用模式,即使用戶試圖選擇它也不會被選中。 我們如何才能得到它。 對此的任何幫助將是偉大的 謝謝

+0

我需要使這些以「---」開頭的項目禁用這些值。但這些值應該在列表框中對用戶可見。但是當用戶試圖選擇該項目時,它不應該被選中,這就是我希望myQuestion很清楚的答案 – happysmile 2010-01-28 11:18:00

回答

1

標準列表框控件沒有能力做到這一點。您可以將ListItem上的Enabled屬性設置爲False,但會將該項從列表中移除。最好的解決方案是使用一些JavaScript來選擇一個破折號時更改列表框的selectedIndex。

添加onclick處理程序到你的列表框控件:

<asp:ListBox ID="lbTesting" runat="server" OnClick="testSelectedItem();"> 

然後添加下面的JavaScript函數來檢查所選項目:

<script language="javascript" type="text/javascript"> 
    function testSelectedItem() { 
     var lbTesting = document.getElementById('lbTesting'); 
     if (lbTesting[lbTesting.selectedIndex].innerText == '----') { 
      lbTesting.selectedIndex = 0; 
     } 
    } 
</script> 

顯然,你可以使用JavaScript功能的發揮如果您需要測試不同數量的破折號,或者在用戶選擇虛線條目時需要不同的功能 - 當前它只是重置爲列表中的第一項。

最後,您應該在服務器端添加一個編輯,以確保沒有選擇虛線條目,因爲用戶可能已禁用JavaScript。