asp.net控件(.ascx)与dijit?

时间:2010-01-11 00:52:11

标签: asp.net dojo ascx

我试图让一个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中的示例 我不明白为什么生成的选择标签不是组合框。

我也试过这个:

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

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

解决方案最终成为了这个:

您必须在样式表中或直接引用dijit.css。