自动填充扩展程序无法使用Web方法 [英] Autocomplete extender not working with web method

查看:57
本文介绍了自动填充扩展程序无法使用Web方法的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

大家好,



我有一个数据库,我有一个电影表,它有两列:Id和电影。

我使用了一个自动完成扩展器来扩展我使用LINQ到sql的文本框并编写了web方法。

请查看:

 <%@     Page    语言  =  C#    AutoEventWireup   =  true    CodeFile   =  Default2.aspx.cs   继承  =  Default2   %>  
<%@ 注册 TagPrefix = ajax 命名空间 < span class =code-keyword> = AjaxControlToolkit 汇编 = AjaxControlToolkit %>
< !DOCTYPE html PUBLIC - // W3C // DTD XHTML 1.0 Transitional // EN http:// www。 w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">

< html xmlns = http://www.w3.org/1999/xhtml >
< head runat = server >
< title > < / title >
< < span class =code-leadattribute> script type = text / javascript >

function pageLoad(){
}

< < span class =code-keyword> / script >
< / head >
< body >
< 表格 id = form1 runat = server >
< ; div style < span class =code-keyword> = height:223px >
< asp:ScriptManager ID = ScriptManager1 runat = 服务器 / >
< asp:标签 ID = title 文字 = 电影 A ssociatedControlID = tb runat = server / >
< asp:TextBox ID = tb runat = server / >
< ajax:AutoCompleteExtender ID = ace1 TargetControlID = tb

< span class =code-attribute> MinimumPrefixLength = 1 runat = server

UseContextKey = ServiceMethod = GetCompletionList / >
< < span class =code-leadattribute> asp:Button
runat = server OnClick = 点击 文字 = 提交 < span class =code-attribute> / >
< br / > < br / >

< asp:标签 ID = lbl runat = server / >
< / div >

< / form >
< / body >
< / html >



code后面:

 受保护  void  Page_Load(对象发​​件人,EventArgs e)
{


}
受保护 < span class =code-keyword> void click( object sender,EventArgs e)
{
lbl.Text = tb 。文本;
}
[System.Web.Services.WebMethodAttribute(),System.Web.Script.Services.ScriptMethodAttribute()]
public static string [] GetCompletionList( string prefix, int count)
{
DataClassesDataContext db = new DataClassesDataContext();
return db.movi​​es
.Where(m = > m.Movie .StartsWith(前缀))。OrderBy(m = > m.Movie)。选择(m = > m.Movie).Take(count)。ToArray();

}



谢谢和问候

解决方案

我认为这可能会对你有所帮助。



i我不确定



*可能是你必须在列表中给出web方法类型



 <   asp:textbox     id   =  TextBox1    runat   =  server    xmlns:asp   = #unknown >  <   / asp:textbox  >  
< asp:imagebutton id = 搜索 runat = server imageurl = 〜/ Images / search_button.png xmlns:asp = #unknown >
OnClick =Select_TextBox1_AutoCompleteExtendeStyle =margin:2px -10px -11px; />
< ajaxitem:autocompleteextender id = AutoCompleteExtender1 runat = server 已启用 = xmlns:ajaxitem = #unknown >
ServiceMethod =GetListofCustomerNameMinimumPrefixLength =1EnableCaching =true
CompletionSetCount = 2CompletionInterval =1000ServicePath =TargetControlID =TextBox1>
< / ajaxitem:autocompleteextender >
< / asp:imagebutton >





C#



 [System.Web.Script.Services.ScriptMethod()] 
[System.Web.Services.WebMethod]
public 静态列表< string> GetListofCustomerName( string prefixText)
{
string cnnString = ConfigurationManager.ConnectionStrings [< span class =code-string> myConnectionString]。ConnectionString;
MySqlConnection con = new MySqlConnection(cnnString);

MySqlCommand cmd2 = new MySqlCommand( 从useraccount1中选择un,其中un不像'% + prefixText + %',con);
cmd2.Parameters.Add( prefixText,MySqlDbType.VarChar).Value = prefixText ;
MySqlDataAdapter da = new MySqlDataAdapter(cmd2);

DataTable dt = new DataTable();
da.Fill(dt);
List< string> CountryNames = new List< string>();
for int i = 0 ; i < dt.Rows.Count; i ++)
{
CountryNames.Add(dt.Rows [i] [ name]。ToString());
}
return CountryNames;
}





如果有帮助,请给我回复 ..


Hello people,

I have a database in which i have a movies table it has two columns : Id and Movie.
I have used an autocomplete extender to extend the text box i have used LINQ to sql and written the web method.
Please look into it:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %>
<%@ Register TagPrefix="ajax" Namespace="AjaxControlToolkit" Assembly="AjaxControlToolkit" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <script type="text/javascript">
    
      function pageLoad() {
      }
    
    </script>
</head>
<body>
    <form id="form1" runat="server">
    <div style="height: 223px">
        <asp:ScriptManager ID="ScriptManager1" runat="server" />
        <asp:Label ID="title" Text="Movie" AssociatedControlID="tb" runat="server" />
        <asp:TextBox ID="tb" runat="server" />
        <ajax:AutoCompleteExtender ID="ace1" TargetControlID="tb" 

             MinimumPrefixLength="1"  runat="server" 

            UseContextKey="True" ServiceMethod="GetCompletionList" />
          <asp:Button runat="server" OnClick="click" Text="submit" />
          <br /><br />
          
         <asp:Label ID="lbl" runat="server" />
    </div>
 
    </form>
</body>
</html>


code behind:

protected void Page_Load(object sender, EventArgs e)
{


}
protected void click(object sender, EventArgs e)
{
    lbl.Text = tb.Text;
}
[System.Web.Services.WebMethodAttribute(), System.Web.Script.Services.ScriptMethodAttribute()]
public static string[] GetCompletionList(string prefix, int count)
{
    DataClassesDataContext db = new DataClassesDataContext();
    return db.movies
        .Where(m => m.Movie.StartsWith(prefix)).OrderBy(m => m.Movie).Select(m => m.Movie).Take(count).ToArray();

}


Thanks and regards

解决方案

I think this may help u

i am not sure

*may be you had to give web methord in List type

 <asp:textbox id="TextBox1" runat="server" xmlns:asp="#unknown"></asp:textbox>
                <asp:imagebutton id="Search" runat="server" imageurl="~/Images/search_button.png" xmlns:asp="#unknown">
                    OnClick="Select_TextBox1_AutoCompleteExtende" Style="margin: 2px -10px -11px;" />
                <ajaxitem:autocompleteextender id="AutoCompleteExtender1"  runat="server" enabled="True" xmlns:ajaxitem="#unknown">
                    ServiceMethod="GetListofCustomerName" MinimumPrefixLength="1" EnableCaching="true"
                    CompletionSetCount="2" CompletionInterval="1000" ServicePath="" TargetControlID="TextBox1">
                </ajaxitem:autocompleteextender>
</asp:imagebutton>



C#

[System.Web.Script.Services.ScriptMethod()]
[System.Web.Services.WebMethod]
public static List<string> GetListofCustomerName(string prefixText)
{
    string cnnString = ConfigurationManager.ConnectionStrings["myConnectionString"].ConnectionString;
    MySqlConnection con = new MySqlConnection(cnnString);

    MySqlCommand cmd2 = new MySqlCommand("select un from useraccount1 where un like '%" + prefixText + "%'", con);
    cmd2.Parameters.Add("prefixText", MySqlDbType.VarChar).Value = prefixText;
    MySqlDataAdapter da = new MySqlDataAdapter(cmd2);

    DataTable dt = new DataTable();
    da.Fill(dt);
    List<string> CountryNames = new List<string>();
    for (int i = 0; i < dt.Rows.Count; i++)
    {
        CountryNames.Add(dt.Rows[i]["name"].ToString());
    }
    return CountryNames;
}



Give me a Reply if this help's you..


这篇关于自动填充扩展程序无法使用Web方法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆