0

我将 MVC3 与 KendoUI 一起使用。

我可以通过手动将值传递给组合框来检索数据,并且可以在执行时看到组合框中的值。

这是通过手动传递值

            $("#input").kendoComboBox({
                dataTextField: "text",
                dataValueField: "value",
                dataSource: [
                        { text: "Cotton", value: "1" },
                        { text: "Polyester", value: "2" },
                        { text: "Cotton/Polyester", value: "3" },
                        { text: "Rib Knit", value: "4" }
                    ],
                filter: "contains",
                suggest: true,
                index: 3
            });

现在我需要从 SQL Server 2008 中检索数据。

说我的表名是 Products


产品名称 <-- 这是我的列名称,后跟其中的值。abc def ghi

我怎样才能做到这一点 ?

我对这个 KendoUI 和 MVC 都很陌生。

请帮忙

谢谢,

4

1 回答 1

1

哟,伙计,

组合框的客户端配置应该与这个非常相似。 http://demos.kendoui.c​​om/web/combobox/remotedatasource.html

例如

<script>
  jQuery("#products").kendoComboBox({
    "dataSource": {
        "transport": {
            "read": {
                "url": "/razor/web/Home/GetProducts",
                "data": function() {
                    return kendo.ui.ComboBox.requestData("#products");
                }
            }
        },
        "serverFiltering": true,
        "filter": [],
        "schema": {
            "errors": "Errors"
        }
    },
    "dataTextField": "ProductName",
    "dataValueField": "ProductID",
    "filter": "contains"
});​
</script>

使用 sever 方法中的此类配置,您需要创建一个返回 JsonResult 的操作方法,最重要的部分是集合中的每个对象都应包含名称为ProductNameProductID的属性,这些属性代表用于 Combo 的名称和 id。

public JsonResult GetProducts(string text)
    {
        var northwind = new NorthwindDataContext();


        var products = northwind.Products.Select(product => new ProductViewModel
        {
            ProductID = product.ProductID,
            ProductName = product.ProductName,
            UnitPrice = product.UnitPrice ?? 0,
            UnitsInStock = product.UnitsInStock ?? 0,
            UnitsOnOrder = product.UnitsOnOrder ?? 0,
            Discontinued = product.Discontinued
        });

        if (!string.IsNullOrEmpty(text))
        {
            products = products.Where(p => p.ProductName.Contains(text));
        }

        return Json(products, JsonRequestBehavior.AllowGet);
    }
于 2012-09-13T19:31:20.107 回答