Ajax コントロール ツールキット AutoCompleteExtender でゼロが削除され、ファントム値が生成される
-
20-08-2019 - |
質問
私が使用しているのは、 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 つの問題を示しています。
- 私のゼロにいったい何が起こったのでしょうか?そして、どうすればそれらを取り戻すことができますか?
- 「240xx」という数字はどこから来たのでしょうか?XML ドキュメントには、これらの値を含むものはまったくありません。
私はこれに完全に困惑しています、助けてください:)
解決
あなたは引用符で配列内の各文字列を囲む必要があります。例えば、getEJMapsは次のようになり、配列を返す必要があります:
"00056399"
"00056717"
"00056721"
"00056722"
"00056900"
...
あなたは\で引用符をエスケープする必要は忘れないでください。
これは行方不明0のではなく、ファントム値を修正した場合、私に知らせて、私もそれを支援しようとするでしょう。でも、私はそれをしますと思っています。
他のヒント
SELECT
'''' + CustomerShipTo + '''' AS CustomerShipTo
FROM dbo.CustomerMaster
この作業をする必要があります..... それは私のために働いた。
所属していません StackOverflow