編輯: 這裏是編輯的控制文件(control.ascx):如何讓jQuery用戶界面在DotNetNuke的工作6+
<%@ 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();
}
這是網絡處理器,以防萬一(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;
}
}
}
我已經測試的網絡處理器小號earch_Username.ashx,它工作正常,但我不確定該文件的鏈接是否正確。 jQuery自動完成仍然不起作用,也沒有錯誤。我不知道要在哪裏修復,雖然我在這裏查看一些問題。有人能幫我嗎?
我已經做了像你這樣的指示,但還是沒有結果。以下是ashx文件的實際路徑:DesktopModules/MyModule/Search_username.ashx。這是來自頁面源的URL:'/dnn/DesktopModules/MyModule/Search_Username.ashx'。這是對的嗎? – Meister
這取決於您如何進行網站設置。如果它在「localhost/dnn」那麼這應該是正確的URL。嘗試在那裏導航,看看你是否得到你所期望的... – bdukes
是的,我的網站設置在「localhost/dnn」,我也嘗試導航到這個文件,並且它返回值如我所料,但沒有任何東西發生。就好像自動完成功能根本沒有被觸發。我已經更新了上面的代碼,請看看我是否做錯了什麼。同時,也許我會嘗試伐木的事情。謝謝 – Meister