1

我正在使用Ajax Control Toolkit中的AutoCompleteExtender,它的行为很奇怪。

我的服务方法如下所示:

[System.Web.Services.WebMethod]
[System.Web.Script.Services.ScriptMethod]
public string[] getEJMaps(string prefixText, int count)
{   // method that returns the auto-suggest for the EJMaps positions
    string file_location = HttpContext.Current.Server.MapPath("~") + Utils.Settings.Get("attachments") + "ejmaps\\ejmaps.xml";
    XElement x = XElement.Load(file_location);
    string[] positions = (from p in x.Descendants("position") where p.Value.StartsWith(prefixText) orderby p.Value select p.Value).ToArray();
    if (positions.Count() == 0)
        return new string[] { "No Matching Results" };
    else return positions;
}

它工作正常,如果我在测试页面中使用值getEJMaps("00056", 4)调用它,我会得到以下结果:

00056399
00056717
00056721
00056722
00056900
...

这正是我想要的,但是当我将它绑定到TextBox并输入 00056 时,我得到了结果:

56399
24015
24017
56717
56721
...

这显示了两个问题:

  1. 我的零点到底怎么了?我怎样才能让他们回来?
  2. 那些“240xx”数字是从哪里来的?xml 文档中甚至没有任何具有这些值的内容!

我对此完全感到困惑,请帮助我:)

4

2 回答 2

2

您需要用引号将数组中的每个字符串括起来。例如,getEJMaps 应该返回一个如下所示的数组:

"00056399"
"00056717"
"00056721"
"00056722"
"00056900"
...

不要忘记您需要使用 \ 转义引号

如果这修复了丢失的 0 而不是幻像值,请告诉我,我也会尽力帮助解决这个问题。我想它会的。

于 2009-02-03T21:39:54.310 回答
1
SELECT   
'''' + CustomerShipTo + '''' AS CustomerShipTo   

FROM dbo.CustomerMaster   

这应该有用.....它对我有用

于 2010-11-29T10:59:02.727 回答