【发布时间】:2011-01-09 21:48:21
【问题描述】:
我的网络表单上有一个自定义控件:
<form id="form" runat="server">
<clc:CustomList
ID="myList"
runat="server"
AddButtonText="add"
DeleteButtonText="del"
MoveUpButtonText="up"
MoveDownButtonText="down"/>
<div id="test" runat="server"></div>
</form>
我需要从静态 WebMethod 访问此控件。 我从当前的 HttpContext 中获取了 Page 对象,但似乎这个页面对象没有控制(控件计数为 0)。
[WebMethod]
public static List<CustomListControl.IListItem> GetListItems()
{
Page page = HttpContext.Current.Handler as Page;
Control control = null;
if (page != null)
{
control = FindControlRecursive(page, "myList");
}
return null;
}
private static Control FindControlRecursive(Control root, string id)
{
if (root.ID == id)
{
return root;
}
foreach (Control c in root.Controls)
{
Control t = FindControlRecursive(c, id);
if (t != null)
{
return t;
}
}
return null;
}
知道为什么或如何控制我吗? 谢谢!
【问题讨论】:
标签: c# asp.net controls webforms custom-controls