Ajax コントロール ツールキット AutoCompleteExtender でゼロが削除され、ファントム値が生成される

StackOverflow https://stackoverflow.com/questions/498474

質問

私が使用しているのは、 AutoCompleteExtender から Ajax 制御ツールキット そしてそれは奇妙に行動しています。

私のサービス方法は次のとおりです。

[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
...

それはまさに私が望むものですが、それを テキストボックス 「00056」と入力すると、次の結果が得られます。

56399
24015
24017
56717
56721
...

これは 2 つの問題を示しています。

  1. 私のゼロにいったい何が起こったのでしょうか?そして、どうすればそれらを取り戻すことができますか?
  2. 「240xx」という数字はどこから来たのでしょうか?XML ドキュメントには、これらの値を含むものはまったくありません。

私はこれに完全に困惑しています、助けてください:)

役に立ちましたか?

解決

あなたは引用符で配列内の各文字列を囲む必要があります。例えば、getEJMapsは次のようになり、配列を返す必要があります:

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

あなたは\で引用符をエスケープする必要は忘れないでください。

これは行方不明0のではなく、ファントム値を修正した場合、私に知らせて、私もそれを支援しようとするでしょう。でも、私はそれをしますと思っています。

他のヒント

SELECT   
'''' + CustomerShipTo + '''' AS CustomerShipTo   

FROM dbo.CustomerMaster   

この作業をする必要があります..... それは私のために働いた。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top