編集: 編集された制御ファイル (control.ascx) は次のとおりです。
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="Sale.ascx.cs" Inherits="Enmasse.Modules.Demo_Enmasse.Sale" %>
<script type="text/javascript">
$(document).ready(function () {
$("#<%=txtuser.ClientID%>").autocomplete('<%=ResolveUrl("Search_Username.ashx")%>');
function AnotherJSFunction{
...
}
});
</script>
<asp:MultiView ID="MultiView1" runat="server" ActiveViewIndex=0>
<asp:View ID="main" runat="server">
<div class=item>
<asp:TextBox ID="txtuser" runat="server" ></asp:TextBox><br />
...
編集された分離コード ファイル (control.ascx.cs) は次のとおりです。
protected void Page_Load(object sender, System.EventArgs e)
{
DotNetNuke.Framework.jQuery.RequestUIRegistration();
}
これは、念のための Web ハンドラーです (ashx):
<%@ WebHandler Language="C#" Class="Search_Username" %>
using System;
using System.Web;
using System.Data.SqlClient;
using System.Configuration;
using System.Text;
public class Search_Username : IHttpHandler {
public void ProcessRequest (HttpContext context) {
string prefixText = context.Request.QueryString["q"];
using (SqlConnection conn = new SqlConnection())
{
conn.ConnectionString = ConfigurationManager.ConnectionStrings["SiteSqlServer"].ConnectionString;
using (SqlCommand cmd = new SqlCommand())
{
cmd.CommandText = "select Username from Users where Username like @SearchText + '%' and IsSuperUser <> 1";
cmd.Parameters.AddWithValue("@SearchText", prefixText);
cmd.Connection = conn;
StringBuilder sb = new StringBuilder();
conn.Open();
using (SqlDataReader sdr = cmd.ExecuteReader())
{
while (sdr.Read())
{
sb.Append(sdr["Username"]).Append(Environment.NewLine);
}
}
conn.Close();
context.Response.Write(sb.ToString());
}
}
}
public bool IsReusable {
get {
return false;
}
}
}
Web ハンドラー Search_Username.ashx をテストしましたが、正常に動作しますが、ファイルへのリンクが正しいかどうかはわかりません。jQuery オートコンプリートはまだ機能せず、エラーもありません。ここでいくつかの質問を確認しましたが、どこを修正すればよいかわかりません。誰かが私を助けることができますか?