2010-01-11 56 views
0

我試圖讓一個asp.net dropdownlist控件成爲一個dijit組合框,但它不工作。asp.net控件(.ascx)與dijit?

我已經嘗試過這樣的:

<asp:DropDownList ID="ddlUserID" dojoType="dijit.form.ComboBox" runat="server" 
    DataTextField="FullNameAndUserName" 
    CssClass="stdtext" DataValueField="UserID" AppendDataBoundItems="True" 
    AutoPostBack="True" 
    meta:resourcekey="ddlUserIDResource1" EnableTheming="False"> 
    <asp:ListItem Text="(All Users)" Value="0" meta:resourcekey="ListItemResource1" /> 
</asp:DropDownList> 
    <script type="text/javascript" src="../scripts/dojo/dojo.js"></script> 
    <script type="text/javascript"> 
    dojo.require('dijit.form.ComboBox'); 
</script> 

的路徑的dojo.js相對於ascx控件的含父頁和負載細根據螢火。

呈現的HTML是這樣的:

<select id="invoiceReport1_ddlUserID" class="stdtext" dojotype="dijit.form.ComboBox" onchange="javascript:setTimeout('__doPostBack(\'invoiceReport1$ddlUserID\',\'\')', 0)" name="invoiceReport1$ddlUserID"> 
    </select> 
    <script src="../scripts/dojo/dojo.js" type="text/javascript"> 
    </script> 
    <script type="text/javascript"> 
    </script> 
    <script type="text/javascript"> 

看着從http://docs.dojocampus.org/dijit/form/ComboBox 的例子,我不能明白爲什麼得到的選擇標記是不是一個組合框。

我也試過這樣:

HtmlGenericControl ctrl1 = new HtmlGenericControl("Script"); 
ctrl1.Attributes.Add("Type", "Text/Javascript"); 
ctrl1.Attributes.Add("src", "../Scripts/dojo/dojo.js"); 
this.Page.Header.Controls.Add(ctrl1); 


HtmlGenericControl ctrl2 = new HtmlGenericControl("Script"); 
ctrl2.Attributes.Add("Type", "Text/Javascript"); 
ctrl2.InnerText = "dojo.require('dijit.form.ComboBox');"; 
this.Page.Header.Controls.Add(ctrl2); 

有什麼建議?

+0

加入後 ctrl1.Attributes.Add(「djConfig」,「parseOnLoad:true」); 我現在得到外觀上的問題... 我得到一個▼然後一個X然後一個文本框,然後所有的列表項目都顯示爲所有其他內容下的項目符號列表。 – 2010-01-11 02:16:54

+0

onchange是直的JS,而不是url,所以你可能會想放棄「javascript:」 – peller 2010-01-11 15:39:09

回答

1

解決方案結束了這一點:

您必須參考dijit.css無論是在樣式表或直接。

+0

dijit.css本身並不真正起作用。你通常想要引入其中的一個主題,比如tundra.css(或者只是Tundra主題中的相關小部件css文件),然後將其引入dijit.css。把class ='tundra'放在身上。 – peller 2010-01-11 15:40:26