1

次のような文字列配列を返す ASMX サービスで Kendo UI Autocomplete を使用しています。

<ArrayOfString>
    <string>One string</string>
    ...
</ArrayOfString>

アイテムリストが2回開くことを除いて、すべて正常に機能します。ワンクリックで 1 つのリストを閉じても、「2 番目の後ろ」はまだ開いています。リストが開くと、最初のリストの後ろに 2 番目のリストが表示されます。

何か案が ?

JS コード:

<input id="autoCompleteTest" />
<script>
    var dataSource = new kendo.data.DataSource({
        serverFiltering: true,
        transport: {
            read: {
                data: {
                    startswith: function(){
                        return $("#autoCompleteTest").data("kendoAutoComplete").value();
                    }
                },
                url: "WebService.asmx/GetStrings",
                type: "POST",
            }
        },
        schema: {
            // specify the the schema is XML
            type: "xml",
            // the XML element which represents a single data record
            data: "/ArrayOfString/string",
            // define the model - the object which will represent a single data record
            model: {
                // configure the fields of the object
                fields: {
                // the "title" field is mapped to the text of the "title" XML element
                value: "text()"
            }
        }
    }
});
$("#autoCompleteTest").kendoAutoComplete({
    minLength: 3,
    dataValueField : "value",
    dataTextField : "value",
dataSource: dataSource
});
</script>

C# コード:

[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public String[] GetStrings(string startswith)
{
    using (var dataContext = new DataClassesDataContext())
    {
        var query = from x in dataContext.product where x.shortName.StartsWith(startswith) select x.shortName;
        return query.ToArray();
    }
}
4

2 に答える 2

0

私は同様の問題に遭遇し、ここに投稿しました

オートコンプリート コントロールが、Kendo コントロールに 2 回目のレンダリングを強制する別のコントロール内に配置されていないことを確認してください。

于 2014-04-17T12:52:28.930 に答える