asp.net control (.ascx) с помощью dijit?

Я пытался получить элемент управления раскрывающимся списком asp.net, чтобы он стал комбинированным списком 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 и загружается нормально в соответствии с firebug.

визуализированный 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 Я не понимаю, почему результирующий тег select не является окном со списком.

я тоже пробовал это:

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);

Какие-либо предложения?


person X-Dev    schedule 11.01.2010    source источник
comment
после добавления ctrl1.Attributes.Add (djConfig, parseOnLoad: true); Теперь у меня проблемы с внешним видом ... я получаю ▼, затем X, затем текстовое поле, после чего все элементы списка отображаются в виде маркированного списка под всем остальным контентом.   -  person X-Dev    schedule 11.01.2010
comment
onchange - это прямой JS, а не URL-адрес, поэтому вы, вероятно, захотите удалить javascript:   -  person peller    schedule 11.01.2010


Ответы (1)


решение оказалось таким:

вы должны ссылаться на dijit.css либо в своей таблице стилей, либо напрямую.

person X-Dev    schedule 11.01.2010
comment
Сам по себе dijit.css на самом деле не работает. Обычно вам нужно использовать одну из тем, например tundra.css (или просто соответствующие файлы css виджетов в теме Tundra), которая затем будет загружать dijit.css. И поставить на кузов class = 'tundra'. - person peller; 11.01.2010