繁体   English   中英

Kendo UI下拉列表

[英]Kendo UI Dropdown List

我有一个使用mvc包装器的剑道下拉列表

    Html.Kendo.DropDownList() _
        .Name("MainCategories") _
        .HtmlAttributes(New With {.style = "width: 250px"}) _
        .DataTextField("CategoryName") _
        .OptionLabel("Select A Category") _
        .DataValueField("ID") _
        .DataSource(Function(source)
                        source.Read(Function(read) read.Action("GetCategories", "Home"))
                    End Function _
                    ) _
    .Render()


End Code

我在控制器中有功能

Public Function GetCategories() As String

    ' Dim dr As DataRow
    Dim dt As New DataTable
    Dim query As New LibQuery(LibSQL.ConString)
    query.OpenNoTran()
    Dim da As SqlDataAdapter = MainCategories.LoadAllMainCategoriesAdapt(query)
    da.Fill(dt)

    Dim serializer As New System.Web.Script.Serialization.JavaScriptSerializer()

    Dim rows As New List(Of Dictionary(Of String, Object))()
    Dim row As Dictionary(Of String, Object)
    For Each dr As DataRow In dt.Rows
        row = New Dictionary(Of String, Object)()
        For Each col As DataColumn In dt.Columns
            row.Add(col.ColumnName, dr(col))
        Next
        rows.Add(row)
    Next
    Return serializer.Serialize(rows)

    '  Return Json(da, JsonRequestBehavior.AllowGet)

End Function

并通过检查即时通讯返回json结果

[{"ID":1,"CategoryName":"Hair Dressing"},
 {"ID":2,"CategoryName":"Gardening"},
 {"ID":3,"CategoryName":"Animal Care"},
 {"ID":4,"CategoryName":"Accounting"},
 {"ID":5,"CategoryName":"Cleaning"},
 {"ID":6,"CategoryName":"Automotive"},
 {"ID":7,"CategoryName":"Another"},
 {"ID":8,"CategoryName":"Costas Cooking"},
 {"ID":9,"CategoryName":"cvb"},
 {"ID":10,"CategoryName":"cvbcbvcbv"},
 {"ID":11,"CategoryName":"cxxxxx"},
 {"ID":12,"CategoryName":"MVC ABout Is Working"},
 {"ID":13,"CategoryName":"Another MvC"}]

由于某种原因,所有列表值(datatextvalue)在下拉列表中都是“ undefined”,这很奇怪,即时通讯使用我自己的数据库连接文件,应该没问题。 也许是因为我没有使用JsonResult? 有任何想法吗。

谢谢

您目前似乎以字符串形式返回JSON-带有额外的引号,例如“ [{“ ID”:1}]“。 这是因为您要自己对其进行序列化,而不是将其留给Json()方法。

尝试使用

Return Json(rows, JsonRequestBehavior.AllowGet)

代替

Return serializer.Serialize(rows)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM