编辑: 这里是编辑的控制文件(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