1

我在驻留在 UserControl(Control.ascx 文件)上的 TextBox 上创建了一个 AutoCompleteExtender。

我不想为 web 方法创建一个单独的类,我宁愿将它放在代码文件 (Control.ascx.cs) 本身中。

有办法吗?

我曾经成功地尝试过将方法放在同一页面上,但它是一个页面,如果未设置 ServicePath 属性,它会自动引用该页面,因此它可以工作,现在因为它是一个用户控件,即使我明确表示它也不会指定路径。

4

2 回答 2

2

您实际上可以将 Web 方法保存在 .aspx 中,而其他自动完成扩展器相关代码可以驻留在 .ascx 中。它工作正常。

于 2010-03-23T13:07:52.023 回答
0

AutoCompleteExtender 目前在 UserControl 中不起作用。在 2007 年 2 月的 MSDN 杂志中引用 Dino Esposito:-

可调用页面方法是在代码隐藏类中定义的公共静态(或 Visual Basic.NET 中的 Shared)方法,并使用用于 Web 服务方法的相同 WebMethod 属性进行修饰。目前,这仅限于 ASPX 页面——包括内联代码和代码隐藏代码——但将来可能会扩展到用户控件和自定义控件。

我最近的经验表明,这仍然适用。

恐怕您要么将方法实现为 WebService,要么将功能移回页面。

于 2009-07-20T15:28:47.670 回答