我在驻留在 UserControl(Control.ascx 文件)上的 TextBox 上创建了一个 AutoCompleteExtender。
我不想为 web 方法创建一个单独的类,我宁愿将它放在代码文件 (Control.ascx.cs) 本身中。
有办法吗?
我曾经成功地尝试过将方法放在同一页面上,但它是一个页面,如果未设置 ServicePath 属性,它会自动引用该页面,因此它可以工作,现在因为它是一个用户控件,即使我明确表示它也不会指定路径。
我在驻留在 UserControl(Control.ascx 文件)上的 TextBox 上创建了一个 AutoCompleteExtender。
我不想为 web 方法创建一个单独的类,我宁愿将它放在代码文件 (Control.ascx.cs) 本身中。
有办法吗?
我曾经成功地尝试过将方法放在同一页面上,但它是一个页面,如果未设置 ServicePath 属性,它会自动引用该页面,因此它可以工作,现在因为它是一个用户控件,即使我明确表示它也不会指定路径。
您实际上可以将 Web 方法保存在 .aspx 中,而其他自动完成扩展器相关代码可以驻留在 .ascx 中。它工作正常。
AutoCompleteExtender 目前在 UserControl 中不起作用。在 2007 年 2 月的 MSDN 杂志中引用 Dino Esposito:-
可调用页面方法是在代码隐藏类中定义的公共静态(或 Visual Basic.NET 中的 Shared)方法,并使用用于 Web 服务方法的相同 WebMethod 属性进行修饰。目前,这仅限于 ASPX 页面——包括内联代码和代码隐藏代码——但将来可能会扩展到用户控件和自定义控件。
我最近的经验表明,这仍然适用。
恐怕您要么将方法实现为 WebService,要么将功能移回页面。