申请简介:
我正在创建一个具有母版页、子母版页和一些内容页的网站。
我创建了一些用户控件来在主母版页上显示信息。我已经直接在我的主页上注册了这些控件并指定了它们的位置。
我在 ContentPlaceHolder 中使用了一些内容页面和其他母版页。
描述:
我的一个用户控件上有一个文本框,我想将其与 AutoCompleteExtender 一起使用,通过向用户显示相关结果来帮助用户找到特定的文本。
这是示例代码:
<asp:TextBox ID="TxtSource" runat="server"></asp:TextBox>
<asp:AutoCompleteExtender
ID="AutoCompleteSource"
TargetControlID = "TxtSource"
MinimumPrefixLength="1"
ServiceMethod="GetSourceList"
runat="server" UseContextKey="True">
</asp:AutoCompleteExtender>
自定义控件背后的代码:
[System.Web.Services.WebMethod(), System.Web.Script.Services.ScriptMethod()]
public static string[] GetSourceList(string prefixText, int count, string contextKey)
{
string[] SourceList = {"Star Wars", "Star Trek", "Superman", "Memento", "Shrek", "Shrek II"};
return (from m in SourceList where m.StartsWith(prefixText.ToUpper()) select m).ToArray();
}
我没有使用网络服务,而是使用代码隐藏来调用该方法。
问题:
代码隐藏中的函数永远不会被调用。
我知道我必须将函数保留在 aspx 文件中,但运气不好,我没有在 aspx 文件上添加控件,而是在主文件上添加控件,并且母版页再次被视为控件而不是页面。
一种解决方案:
我可以在每个内容页面上添加自定义控件。
问题 :
1)没有我想要实现的代码可重用性。
2) 页面布局将被更改。
是否有任何其他解决方案,代码更改最少?