是否可以在 ASPX 代码隐藏中定义一次性用户控件?

发布于 2024-10-08 13:15:19 字数 164 浏览 3 评论 0原文

我对 ASP.NET 的一大不满是,除了过多的前缀 ID 之外,它使得组织页面控件变得困难。过去我曾竭尽全力试图缓解这个问题,但我想要一个更容易实施的解决方案。所以,我想知道:

是否可以在 .aspx 的代码隐藏中定义用户控件,然后在 .aspx 中使用它?我想可能不是......我无法让它工作。

One of my big beefs with ASP.NET is that it makes it difficult to organize the controls of a page beyond excessive amounts of prefixing IDs. I have gone to great and complicated lengths in the past to try to alleviate this, but I would like a solution that is easier to implement. So, I'm wondering:

Is it possible to define a user control in the codebehind of a .aspx, and then use it in the .aspx? I'm thinking probably not... I can't get it to work.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

茶底世界 2024-10-15 13:15:19

不可以。您必须在其自己的 .ascx 文件中创建用户控件。

不过,如果您希望创建 Web 控件,您可以在您想要的任何 .cs/.vb 文件中定义它。不过,为了让您的同事能够找到您的代码,我可能建议它无论如何都存在于它自己的文件中。

注意:我会质疑“除了过多的前缀 ID 之外,很难组织页面的控件”的有效性。这就是模板化控件(中继器、数据列表等)的用途。他们将实现 INamingContainer< /a> 从而使您能够使用相同的名称但不同的范围来命名控件。 这里有一些很好的信息...

No. You must create a user control in it's own .ascx file.

Though if you wish wish to create a web control, you can define that in whichever .cs/.vb file you want. Though for the sake of your coworkers being able to find your code, I might suggest it live in it's own file anyways.

NOTE: I would question the validity of "it difficult to organize the controls of a page beyond excessive amounts of prefixing IDs". This is what templated controls (repeater, datalist, etc) are for. They will implement INamingContainer and thus will enable you to name controls with the same name, but different scope. There's some good info here...

游魂 2024-10-15 13:15:19

必须定义一个现有的 ASP.NET 用户控件,并且您可以动态加载它。这与您拥有的用户控件的动态功能差不多。您还可以利用自定义控件,这确实使您可以完全控制呈现的 UI。但是,不呈现完整的 ID 可能会导致客户端/服务器集成出现后续问题,具体取决于您尝试执行的操作。

此外,要自定义 ID,您可以利用 ASP.NET 4.0 的 ClientIDMode 属性:http://msdn.microsoft.com/en-us/library/system.web.ui.control.clientidmode.aspx

There has to be an existing ASP.NET user control defined, and you can dynamically load it. That's about as much as dynamic capabilities with user controls that you have. You can also leverage custom controls, which really gives you the complete control over the rendered UI. However, not rendering complete ID's can have subsequent issues with the client/server integration, depending on what you are trying to do.

Also, to customize the ID, you can leverage ASP.NET 4.0's ClientIDMode property: http://msdn.microsoft.com/en-us/library/system.web.ui.control.clientidmode.aspx

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文