ASP.NET动态用户控件没有显示子控件?

时间:2011-06-28 04:26:17

标签: asp.net dynamic-controls ckeditor.net

我为此提出了一个奇怪的,不优雅的解决方法,但这是最初的问题......休息后的最后沉思:


我已经发布了一段时间,因为我已经发布了stackoverflow,但这一直是我抛弃我的程序困境的最佳位置。

这是我的问题(只有必要的信息):

我有一个asp.net网络应用程序。 在Web应用程序中,我有一个“main.aspx”页面。 main.aspx文件由两个主要部分组成:

  • 用于导航的自定义UserControl,包含在标记中(即,未动态加载) - 此处没有问题

  • PlaceHolder控件,用于根据导航控件中单击的内容在后面的代码中动态添加UserControl。请注意,此PlaceHolder位于UpdatePanel内...这些UserControls加载正常,状态保持不变(最后!) - 此处没有问题

现在 - 这里是问题 ...其中一些动态加载的UserControls(放在上面提到的PlaceHolder中)包含一个CKEditor控件,用于基于Web的HTML编辑。 UserControl本身很好地加载 - 状态是持久的,但是CKEditor控件从不显示 ...创建UserControl我可以设置一个监视,而CKEditor实例不是null,但它只是没有t显示在呈现的HTML中。如果我将它移入或移出UpdatePanels或者在动态加载的UserControl中的任何地方,那就不行了。但是,如果我将CKEditor控件从UserControl中取出并将其放在Web应用程序中任何其他位置的任何其他非动态加载控件中,则显示正常。

在尝试了一些事情之后,看起来这不仅仅是CKEditor的一个问题 - 我尝试使用我自己的一个上面提到的Navigation UserControl而不是CKEditor控件,它有同样的问题,不会出现。

摘要:动态加载的UserControl中包含的自定义控件不会显示。

任何人都有任何建议或智慧传授?作为一个相对较新的ASP.NET,我认为我错过了一些明显的东西。如果您想查看某些特定代码,请与我们联系。


事实证明,如果加载的第一个动态UserControl包含一个CKEditor,那么它适用于所有后续交换的动态UserControl。如果加载的第一个动态UserControl没有它,它就不会拉起来在以下方面 - 同样,在使用它的不同控件上ID必须相同。这一切对我来说都很奇怪 - 解决方法工作正常,它看起来非常不直观 - 它是否与页面生命周期中创建CKEditor的位置或某些ViewState事物有关?无论哪种方式,它现在都在工作,我可以继续前进。我现在记得为什么我对非网络开发感到更舒服!

0 个答案:

没有答案