可以用jQuery.load()函数加载ASCX吗?

时间:2009-07-31 13:46:52

标签: asp.net asp.net-ajax jquery ascx

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

6 个答案:

答案 0 :(得分:2)

你不能直接调用ascx页面,他们不能在没有添加到aspx的情况下提供任何html,也不能动态渲染以响应任何页面/处理程序。

答案 1 :(得分:2)

一种可能的方法是在普通的Web表单中使用一个通用的aspx存根页面作为ascx的主机,使用JQuery的$ .ajax()方法回调该页面,并使用一些参数来表示什么要加载的ascx控件。

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

希望这会有所帮助。

答案 2 :(得分:1)

答案 3 :(得分:0)

由于我越来越多地开始使用jQuery / Ajax,我发现我越来越少地使用服务器控件。

我以前用于控件的东西现在只是单独的aspx页面,它们被加载到面板中。

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

答案 4 :(得分:0)

没有

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

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

答案 5 :(得分:-1)

不,ASCX是ASPX上存在的用户控件。您需要将其设为页面,或转换为处理程序。