本文的目的是介绍使用AutocompleteExtender无效或者没反应,输入啥都在webservice里面跟踪不到的详细情况,我们将通过专业的研究、有关数据的分析等多种方式,同时也不会遗漏关于AJ
本文的目的是介绍使用AutocompleteExtender无效或者没反应,输入啥都在webservice里面跟踪不到的详细情况,我们将通过专业的研究、有关数据的分析等多种方式,同时也不会遗漏关于AJAX Asp.net AutoCompleteExtender将字符串0010解释为八进制、AjaxControlToolkit AutoCompleteExtender控件演示、ajaxControlToolkit AutoCompleteExtender的用法、ajaxcontroltoolkit:AutoCompleteExtender用法的知识。
本文目录一览:- 使用AutocompleteExtender无效或者没反应,输入啥都在webservice里面跟踪不到
- AJAX Asp.net AutoCompleteExtender将字符串0010解释为八进制
- AjaxControlToolkit AutoCompleteExtender控件演示
- ajaxControlToolkit AutoCompleteExtender的用法
- ajaxcontroltoolkit:AutoCompleteExtender用法
使用AutocompleteExtender无效或者没反应,输入啥都在webservice里面跟踪不到
以前使用 vs.net2005 建的项目,使用到了微软的 ajax 控件, autocompleteextender,然后建立了 webservice,这个功能完成的很好,一切正常。
后来,我的vs 工具升级到了 vs.net2008,因为项目使用,我又使用了 autocompleteextender ,一切照着以前 vs.net2005 时,使用 autocompleteextender 的方法做的,在 vs.net2008 中新建了 webservice ,但是,此功能就是运行不起来, 使用autocompleteextender没反应,输入啥都在webservice里面跟踪不到 。很是奇怪,后来,以网上搜索相关资料,发现一个问题,
用 vs.net2008 新建的 webservice ,少了最重要的一句:
[System.Web.Script.Services.ScriptService]
AJAX Asp.net AutoCompleteExtender将字符串0010解释为八进制
我在文本框上使用MS AJAX AutoCompleteExtender。除Web服务返回类似“ 0010”的字符串(在这种情况下,它显示为“
8”)外,它都工作正常。
我最终意识到它是将字符串“ 0010”解释为八进制数字(然后通过添加诸如“ 0100”和“ 0x10”之类的字符串来证明这一点。)
我该如何预防?如果Web服务返回“ 0010”,则我希望自动完成扩展程序也显示“ 0010”,而不是将其解释为八进制并显示十进制等效项。
答案1
小编典典单引号。JavaScript使它成为一个int。
AjaxControlToolkit AutoCompleteExtender控件演示
原本程序是一个查询文本框,现用户要求改程序,要如google或baidu输入一样,有自动完成功能。下图是已经完成的效果:
实现使用了Web Service技术与Ajax的autocompleteextender的控件。在数据库中,写好存储过程:
(
@PrefixText NVARCHAR ( 4000 ),
@TopCount INT
)
AS
DECLARE @W NVARCHAR ( 4000 ) = @PrefixText + ' % '
EXECUTE ( ' SELECTTOP ' + @TopCount + ' [LotNumber]FROM[dbo].[Fqa]WHERE[IsSubmit]=1AND[LotNumber]LIKE ''' + @w + '''' )
创建一个Web Service,执行存储过程:
using System.Collections;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Services;
/// <summary>
/// SummarydescriptionforFqaLotNumberService
/// </summary>
namespace Insus.NET
{
[WebService(Description = " FqaLotNumberService " ,Name = " FqaLotNumberService " ,Namespace = http://xxx.xxx.com/WebServices/ )]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
// ToallowthisWebServicetobecalledfromscript,usingASP.NETAJAX,uncommentthefollowingline.
[System.Web.Script.Services.ScriptService]
public class FqaLotNumberService:System.Web.Services.WebService
{
BusinessBaSEObjBusinessBase = new BusinessBase();
public FqaLotNumberService()
{
// Uncommentthefollowinglineifusingdesignedcomponents
// InitializeComponent();
}
[WebMethod]
public string []GetFqaLotNumber( string prefixText, int count)
{
Parameter[]parameter = {
new Parameter( " @PrefixText " ,sqlDbType.NVarChar, 4000 ,prefixText),
new Parameter( " @TopCount " ,sqlDbType.Int, 4 ,count)
};
DataTableLotNumberTable = objBusinessBase.GetDataToDataSet( " usp_Fqa_LotNumberCompletionList " ,parameter).Tables[ 0 ];
ArrayListarray = new ArrayList();
foreach (DaTarowdaTarow in LotNumberTable.Rows)
{
array.Add(daTarow[ " LotNumber " ].ToString());
}
return ( string [])array.ToArray( typeof ( string ));
}
}
}
上面的Web Service中,你会看到一个类别BusinessBase,可以从下面地址下载:http://www.cnblogs.com/insus/articles/1654653.html
.aspx:
< asp:Button ID ="ButtonSearch" runat ="server" OnClick ="ButtonSearch_Cliek" Text ="Search" />
< ajaxToolkit:autocompleteextender ID ="autocompleteextender1" runat ="server" MinimumPrefixLength ="1"
TargetControlID ="txtLotNumber" ServiceMethod ="GetFqaLotNumber" ServicePath ="~/WebServices/FqaLotNumberService.asmx"
CompletionSetCount ="10" >
</ ajaxToolkit:autocompleteextender >
实现过程中,Ajax autocompleteextender控件,只能使用本域的Service,不能跨域,此问题Insus.NET花上不少时间测试。原本Service是摆放在一个单独的WebService的站点上的,取不到数据,只能把Service移至本站点中来。
ajaxControlToolkit AutoCompleteExtender的用法
总结
以上是小编为你收集整理的ajaxControlToolkit AutoCompleteExtender的用法全部内容。
如果觉得小编网站内容还不错,欢迎将小编网站推荐给好友。
ajaxcontroltoolkit:AutoCompleteExtender用法
完整代码如下,请看:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="comboBox测试.WebForm1" %> <%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp" %> <!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> </head> <body> <form id="form1" runat="server"> <div> <asp:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server"> </asp:ToolkitScriptManager> <asp:TextBox ID="TextBox1" runat="server" Width="300px"></asp:TextBox> <asp:autocompleteextender ID="TextBox1_autocompleteextender" runat="server" ServicePath="AutoComplete.asmx" ServiceMethod="GetPort" TargetControlID="TextBox1" MinimumPrefixLength="1" CompletionSetCount="10"></asp:autocompleteextender> </div> </form> </body> </html>
其中的 AutoComplete.asmx是:
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Services; using System.Data; using System.Data.sqlClient; namespace comboBox测试 { /// <summary> /// AutoComplete 的摘要说明 /// </summary> [WebService(Namespace = "http://tempuri.org/")] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] [System.ComponentModel.ToolBoxItem(false)] [System.Web.Script.Services.ScriptService] public class AutoComplete : System.Web.Services.WebService { [WebMethod] public string HelloWorld() { return "Hello World"; } [WebMethod] public string[] GetData(string prefixText,int count) { string[] data = new string[4] { "中国","中国台湾","中国香港","美国" }; return data.Where(p => p.IndexOf(prefixText) >= 0).Take(count).ToArray(); } [WebMethod] public string[] GetPort(string prefixText,int count) { string connection = "*****"; sqlConnection cn; DataSet ds = new DataSet(); using (cn = new sqlConnection(connection)) { cn.open(); string sql = "******"; sqlDataAdapter adapter = new sqlDataAdapter(sql,cn); adapter.Fill(ds); cn.Close(); } int lenght = ds.Tables[0].Rows.Count; string[] data = new string[lenght]; for (int i = 0; i < lenght; i++) { string temp = ds.Tables[0].Rows[i]["PortName"].ToString() + " " + ds.Tables[0].Rows[i]["PortCode"].ToString() + " " + ds.Tables[0].Rows[i]["NationName"].ToString() + " " + ds.Tables[0].Rows[i]["NationCode"].ToString() + " "; data[i] = temp; } return data; } }//end class }
要提醒的是:
ServiceMethod一定要是: 返回值为string [] 参数一定是 string prefixText 和 int count
今天关于使用AutocompleteExtender无效或者没反应,输入啥都在webservice里面跟踪不到的介绍到此结束,谢谢您的阅读,有关AJAX Asp.net AutoCompleteExtender将字符串0010解释为八进制、AjaxControlToolkit AutoCompleteExtender控件演示、ajaxControlToolkit AutoCompleteExtender的用法、ajaxcontroltoolkit:AutoCompleteExtender用法等更多相关知识的信息可以在本站进行查询。
本文标签: