2010-08-27 199 views
3

我有一個基於文本框內容填充的ASP.NET數據綁定下拉列表。填充後,我想自動擴展下拉列表,以便用戶意識到需要做出選擇,並且不需要單擊下拉列表以展開它。似乎沒有這樣做的財產或方法。強制asp.net dropdownlist展開

編輯:在嘗試了Ed B的例子後,我仍然卡住了。我的ddl的ID是'ctl00_ContentPlaceHolder9_ddlContact'。如果我把下面的一個按鈕的onclick事件,它工作正常,下拉很好的擴展:

document.getElementById('ctl00_ContentPlaceHolder9_ddlContact').size=10; 

然而,在DDL的數據綁定事件下面的代碼顯示了警報,但不會擴大下拉菜單:

string script = "<SCRIPT LANGUAGE='JavaScript'> "; 
    script += "alert('expanding');document.getElementById('ctl00_ContentPlaceHolder9_ddlContact').size=10 </SCRIPT>"; 
    ClientScript.RegisterClientScriptBlock(GetType(), "Dropdown", script); 
+0

可能重複[是否有可能使用JS打開一個HTML選擇顯示它的選項列表?(http://stackoverflow.com/questions/430237/is-it-possible使用js打開html選擇顯示其選項列表) – 2010-08-27 20:07:28

+0

以編程方式獲取DropDownList的客戶端ID - ctl00_ContentPlaceHolder9_ddlContact,在這種情況下 - 從服務器端代碼,使用ClientID屬性,就像這樣 - ddlContact。ClientID – 2010-08-27 21:35:36

回答

0

您可以在更改下拉列表後更改其大小。選擇一個選項後,大小可以變回1.

此代碼更改鼠標懸停的大小,但您更改它以在服務器端綁定後調用open_ddl。

<script language="javascript">  
function open_ddl() 
    { 
    document.getElementById("select1").size=5 
    } 

    function close_ddl() 
    { 
    document.getElementBById("select1").size=1 
    } 

    </script> 

    Worst President Ever: 
    <select id="Select2" runat="SERVER" onmouseover="open_ddl()" onmouseout="close_ddl()"> 
        <option value="0" >Obama</option> 
        <option value="1" >Carter</option> 
        <option value="2" >Nixon</option> 
        <option value="3" >Clinton</option> 
    </select> 
+0

您是否將布什從名單中排除而發表聲明? – 2010-08-27 20:17:39

+0

我建議更改答案以刪除政治。與StackOverflow不相關。 – 2010-08-27 20:19:05

+0

投票我下降的原因在下拉列表中的值,而不是答案...典型的自由派 – 2010-08-28 00:07:56

2

摘要:不能展開香草下拉列表。有關更多信息,請參閱此討論:Can I open a dropdownlist using jQuery。但是,有一些解決方法可能是可以接受的。

一種方法(儘管有點厚臉皮)是讓下拉列表展開以一次顯示更多項目。默認情況下,元素一次只顯示一個列表項,但您可以使用其大小屬性使其每次顯示多個列表項。使用這種方法,您可以在用戶將鼠標懸停在DDL上(​​以模擬展開它)時調整大小屬性,然後在鼠標關閉時返回到大小(將其返回到「常規」DDL) 。這裏是一個例子:

<asp:DropDownList runat="server" ID="ddlColors" 
        onmouseover="this.size=3;" 
        onmouseout="this.size=1"> 
    <asp:ListItem>Red</asp:ListItem> 
    <asp:ListItem>Green</asp:ListItem> 
    <asp:ListItem>Blue</asp:ListItem> 
</asp:DropDownList> 

另一個選擇是使用JavaScript創建一個僞選擇。總之,您使用腳本和DOM操作和CSS的組合來獲得滿足您需求的用戶界面。

快樂編程!

+0

我需要展開它的數據綁定列表,而不是鼠標懸停事件。 .Attributes屬性如何爲此工作? – dsteele 2010-08-27 21:39:27

+0

請注意,這不會打開'