我想在自定义Web控件中放置一个ASTreeView Web控件,ASTreeView示例代码如下:
<ct:ASTreeView ID="astvMyTree"
runat="server"
...
LoadNodesProvider="~/ASTreeViewDemo5.aspx"
.../>
LoadNodesProvider是加载节点时调用的页面ajax ...但是如果我将提供程序更改为我的.ascx文件,则它不起作用:
LoadNodesProvider="~/ASTreeViewDemo5.ascx"
它甚至没有通过.ascx文件的Page_Load部分 虽然这可能与astreeview本身有关,但我想知道问题可能是什么?我能做些什么来解决它? 谢谢!
答案 0 :(得分:4)
这是因为ascx必须有一个容器即Page。你不能像使用Page一样使用它。
答案 1 :(得分:4)
ASPX是一个页面,ASCX是一个用户控件。你不能ajax调用一个控件,所以你可能希望它是一个带有控件的页面。
答案 2 :(得分:1)
虽然我不清楚LoadNodesProvider应该做什么,但如果你想封装一些代码或通过AJAX运行一个进程,你有几个选择。一种方法是创建一个AJAX方法可以调用的Web服务(您可以使用WCF)。另一种选择是创建一个http处理程序(ASHX扩展通常表示这一点)。使用ASPX或ASCX对我来说并没有多大意义。 Proco和Tomas对于ASCX文件是正确的,这些是Usercontrols并且不是独立的对象。
答案 3 :(得分:0)
如果你真的,真的想要使用ASPX页面/ ASCX控件,那么我想最好创建一个有一个占位符的空白ASPX页面,然后附加你的用户控件(基于查询字符串参数或其他东西)我想)占位符为你的AJAX控件呈现内容