我需要在特定列上默认对网格进行分组,并且不允许用户删除该列上的分组.这可能吗?
我有一个以这种格式存储的排序列表:
public class ReportSort
{
public ListSortDirection SortDirection { get; set; }
public string Member { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我需要把它变成类型的lambda表达式 Action<DataSourceSortDescriptorFactory<TModel>>
假设我有以下报告排序集合:
new ReportSort(ListSortDirection.Ascending, "LastName"),
new ReportSort(ListSortDirection.Ascending, "FirstName"),
Run Code Online (Sandbox Code Playgroud)
我需要将它转换为这样的语句,如下所示:
.Sort(sort => {
sort.Add("LastName").Ascending();
sort.Add("FirstName").Ascending();
})
Run Code Online (Sandbox Code Playgroud)
排序方法签名是:
public virtual TDataSourceBuilder Sort(Action<DataSourceSortDescriptorFactory<TModel>> configurator)
Run Code Online (Sandbox Code Playgroud)
所以我现在有一些方法:
public static Action<DataSourceSortDescriptorFactory<TModel>> ToGridSortsFromReportSorts<TModel>(List<ReportSort> sorts) where TModel : class
{
Action<DataSourceSortDescriptorFactory<TModel>> expression;
//stuff I don't know how to do
return expression;
}
Run Code Online (Sandbox Code Playgroud)
......我不知道该怎么办
编辑:答案是:
var expression = new Action<DataSourceSortDescriptorFactory<TModel>>(x =>
{
foreach (var sort in sorts)
{ …
Run Code Online (Sandbox Code Playgroud) 这是我的功能 userNameEditor
function userNameEditor(container, options) {
$('<input required data-bind="value:' + options.field + '"/>')
.appendTo(container)
.kendoComboBox({
dataTextField: "UserName",
dataValueField: "UserId",
filter: "contains",
minLength: 3,
//_readMethod: '../Warehouse/SearchUser',
dataSource: new kendo.data.DataSource({
transport: {
contentType: "application/json; charset=utf-8",
serverFiltering: true,
read: {
url: "../Warehouse/SearchUser",
//data: { //?????????//
// q: function () {
// return $("#autoComplete").data("kendoAutoComplete").value();
// },
// maxRows: 10,
// username: "demo"
//}
},
},
}),
})
}
Run Code Online (Sandbox Code Playgroud)
我想捕获kendoComboBox
值 go 控制器并返回用户名包含值只是给我取值的方式请!!!!
这是我的网格列区域
grid._columns.push(grid.GridColumn('Id', null, '200px', null, null, null, null, null, null, null, …
Run Code Online (Sandbox Code Playgroud) 当我尝试使用Kendo UI创建网格或图表时,我不断收到以下错误.但是,一个简单的ComboBox可以工作.我们正在使用商业lisence并在经过身份验证时从Telerik的网站下载了js和css.
未捕获的ReferenceError:未定义kendo
未捕获的ReferenceError:$未定义
配置:_Layout.cshtml
<head>
<environment names="Development">
<link rel="stylesheet" href="~/lib/bootstrap/dist/css/bootstrap.css" />
<link rel="stylesheet" href="~/lib/kendo-ui/styles/kendo.common-bootstrap.min.css" />
<link rel="stylesheet" href="~/lib/kendo-ui/styles/kendo.bootstrap.min.css" />
<link rel="stylesheet" href="~/css/site.css" />
</environment>
<environment names="Staging,Production">
<link rel="stylesheet" href="https://ajax.aspnetcdn.com/ajax/bootstrap/3.3.7/css/bootstrap.min.css"
asp-fallback-href="~/lib/bootstrap/dist/css/bootstrap.min.css"
asp-fallback-test-class="sr-only" asp-fallback-test-property="position" asp-fallback-test-value="absolute" />
<link rel="stylesheet"
href="https://kendo.cdn.telerik.com/2017.2.504/styles/kendo.common-bootstrap.min.css"
asp-fallback-href="~/lib/kendo-ui/styles/kendo.common-bootstrap.min.css"
asp-fallback-test-class="k-common-test-class"
asp-fallback-test-property="opacity" asp-fallback-test-value="0" />
<link rel="stylesheet"
href="https://kendo.cdn.telerik.com/2017.2.504/styles/kendo.bootstrap.min.css"
asp-fallback-href="~/lib/kendo-ui/styles/kendo.bootstrap.min.css"
asp-fallback-test-class="k-theme-test-class"
asp-fallback-test-property="opacity" asp-fallback-test-value="0" />
<link rel="stylesheet" href="~/css/site.min.css" asp-append-version="true" />
</environment>
</head>
<environment names="Development">
<script src="~/lib/jquery/dist/jquery.js"></script>
<script src="~/lib/bootstrap/dist/js/bootstrap.js"></script>
<script src="~/lib/kendo-ui/js/kendo.all.min.js"></script>
<script src="~/lib/kendo-ui/js/kendo.aspnetmvc.min.js"></script>
<script src="~/js/site.js" asp-append-version="true"></script>
</environment>
<environment names="Staging,Production">
<script src="https://ajax.aspnetcdn.com/ajax/jquery/jquery-2.2.0.min.js"
asp-fallback-src="~/lib/jquery/dist/jquery.min.js"
asp-fallback-test="window.jQuery"
crossorigin="anonymous"
integrity="sha384-K+ctZQ+LL8q6tP7I94W+qzQsfRV2a+AfHIi9k8z8l9ggpc8X+Ytst4yBo/hH+8Fk"> …
Run Code Online (Sandbox Code Playgroud) 我们在cardView kendo.ui.Window项目中使用了大约3个DropDownList组件.当窗口关闭时,我们为每个包含的DropDownList项调用'destroy'方法.
问题是以下代码没有删除已附加到文档正文的所有DropDownList的相关DIVS:
var dropdownlist = $("#dropdownlist").data("kendoDropDownList");
dropdownlist.destroy();
Run Code Online (Sandbox Code Playgroud)
经过一些搜索,我们在destroy方法的文档中注意到以下注释(来自Telerik): 重要说明:此方法不会从DOM中删除DropDownList元素.
因此,每当有人打开和关闭我们的kendo的窗口(卡片视图)时,会附加许多DropDownList的div而不从DOM中删除 - 这可能会导致DOM出现严重的性能问题.
保留在DOM中的附加DIVS是 - 例如"k-list-container"和"k-animation-container".
我正在尝试使用Kendo UI在MVC中通过模型和控制器创建饼图,该饼图将显示两种食物的总量,但由于附带的错误,我无法获得结果。
饼图中显示的类型:1)饮料和2)餐食
我指的是这种图表。
该链接显示了使用foreach的多个图表,但我仅关注仅一个图表,该图表会将总收入与餐食和饮料区分开。
我的控制器是:
public ActionResult _SpainElectricityProduction()
{
List<PieGraphModel> objList = new List<PieGraphModel>();
for (int i = 0; i < 2; i++)
{
if (i == 0)
{
objList.Add(new PieGraphModel { coke = 10, pepsi = 20, Type = "Beverages", total = 30 });
}
else
{
objList.Add(new PieGraphModel { chiniese = 50, italian = 40, Type = "Meals", total = 90 });
}
}
return Json(objList);
}
@(Html.Kendo().Chart<MvcRepo_Kendo.Models.PieGraphModel>()
.Name("chart")
.HtmlAttributes(new { @class = "small-chart" }) …
Run Code Online (Sandbox Code Playgroud) asp.net-mvc-4 kendo-ui kendo-asp.net-mvc kendo-chart kendo-ui-mvc
我正在尝试为FilterDescriptor构建一个表达式生成器,该表达式生成器是我从一个请求中获取的,以便在DB中执行,因为它仅在内存中执行。我有成千上万的行可以从数据库中检索(这就是为什么我要创建一个构建器以减少负载的原因)。
//classes
public class Product
{
public string Name {get;set;}
public TypeOfProduct {get;set;}
}
public class TypeOfProduct
{
public string Description {get;set;}
}
//action Read
public ActionResult Read([DataSourceRequest] DataSourceRequest request)
{
if (request.Filters.Count > 0)
{
where = ApplyFilter(request.Filters[0]);
}
}
// apply the FilterDescriptor to a string
private static string ApplyFilter(IFilterDescriptor filter)
{
var filters = string.Empty;
if (filter is CompositeFilterDescriptor)
{
filters += "(";
var compositeFilterDescriptor = (CompositeFilterDescriptor)filter;
foreach (IFilterDescriptor childFilter in compositeFilterDescriptor.FilterDescriptors)
{
filters += ApplyFilter(childFilter);
filters …
Run Code Online (Sandbox Code Playgroud) 我使用下面的代码来获取选定的代码,但是我需要获取当前的行索引来上下移动,如何获得选择的项目的行索引:我的代码:
$("#btnup").click(function () {
var grid = $("#grid").data("kendoGrid");
var selectedItem = grid.dataItem(grid.select());
if (selectedItem != undefined) {
alert("The Row Is SELECTED");
// here need row index
}
else
alert("NO Row Is SELECTED")
});
Run Code Online (Sandbox Code Playgroud) 我正在使用带有 Razor Pages Web 应用程序的 ASP.NET Core MVC 套件的 Kendo UI,因此我尝试将处理程序技术用于网格的服务器操作。
@(Html.Kendo().Grid<CustomerViewModel>()
.Name("CustomersGrid")
.Columns(columns =>
{
columns.Bound(x => x.CustomerId).Title("Student ID");
columns.Bound(x => x.CustomerName).Title("Name");
})
.Pageable()
.Sortable()
.DataSource(dataSource => dataSource
.Ajax()
.PageSize(20)
.ServerOperation(true)
.Read(read => read.Url("/Customers?handler=Read")))
)
Run Code Online (Sandbox Code Playgroud)
我查看了网络选项卡,它正在向http://localhost:5000/Customers?handler=Read发出正确的 POST但是我没有在断点处结束,我得到了一个状态代码 400。
在剃刀页面的 Action 方法后面的代码中,它被命名为 OnPostReadAsync
知道为什么这不起作用吗?除了 .Url 之外,还尝试在 DataSource 的 .Read 属性中使用 read.Action 和 read.Route。
这是带有 action 方法的类:
public class IndexModel : PageModel
{
private readonly ICustomerRepository _customerRepository;
private readonly IMapper _mapper;
public IndexModel(ICustomerRepository customerRepository, IMapper mapper)
{
_customerRepository = …
Run Code Online (Sandbox Code Playgroud) kendo-ui-mvc ×9
kendo-ui ×5
c# ×2
javascript ×2
jquery ×2
kendo-grid ×2
lambda ×2
asp.net-core ×1
expression ×1
kendo-chart ×1
linq ×1
razor-pages ×1
telerik ×1
telerik-mvc ×1