0

是否可以不将这些控件封装在 aspx 文件中?Register 标签让我觉得它不是。

4

6 回答 6

2

您不能直接调用 ascx 页面,它们不能提供任何 html 而不添加到 aspx 或然后动态呈现以响应任何页面/处理程序。

于 2009-07-31T13:51:47.493 回答
2

一种可能的方法是拥有一个通用的 ascx 存根页面,该页面在正常的 Web 表单中充当 ascx 的主机,使用 JQuery 的 $.ajax() 方法对该页面进行回调,并带有一些参数来表示 ascx 控制你想加载。

然后在您的存根/主机页面上,覆盖渲染方法并使用 response.output.write 将控件直接渲染到输出流。客户端上的回调处理程序将捕获输出,然后可以以正常方式或使用允许指定 DOM 元素的 $.load() 版本将其插入 DOM。

希望这可以帮助。

于 2010-12-20T21:29:25.690 回答
0

自从我开始越来越多地使用 jQuery/Ajax 之后,我发现我使用服务器控件的次数越来越少。

我以前放入控件的东西现在只是加载到面板中的单个 aspx 页面。

如果您有旧的 ASCX 文件,将它们转换为 ASPX 应该不会太难

于 2009-07-31T13:59:56.390 回答
0

不。

也就是说,您可以将 ascx 放在 UpdatePanel 中,并使用标准的 Asp.Net 回发机制将面板的内容设置为可见/不可见。

或者您可以编写一个单独的 IHttpHandler 来生成您的 Javascript 代码使用 DOM 添加到页面的 HTML 代码。然而,这部分页面将无法在 PostBack 中访问。

于 2009-07-31T14:00:38.760 回答
-1

不,ASCX 是存在于 ASPX 上的用户控件。您需要将其设为 Page,或转换为 Handler。

于 2009-07-31T13:49:56.620 回答