我使用Kendo Grid进行内联编辑.当我单击"更新"按钮时,将使用此签名对我的控制器方法进行POST.控制器操作被命中,因此POST正在运行.
[HttpPost]
public HttpResponseMessage SaveAccountAdmin(string jsonCompanyContacts)
Run Code Online (Sandbox Code Playgroud)
但是,更新操作中的POST数据永远不会到达 - 它始终为null.
update: {
url: "/Company/SaveAccountAdmin",
contentType: "application/json; charset=utf-8",
type: "POST",
dataType: "json",
data: {
jsonCompanyContacts: "John Doe"
}
},
Run Code Online (Sandbox Code Playgroud)
这是完整的数据源代码.
var dataSource = new kendo.data.DataSource(
{
batch: false,
pageSize: 10,
transport: {
create: {
url: "/Company/SaveAccountAdmin",
contentType: "application/json; charset=utf-8",
type: "POST",
dataType: "json"
},
read: {
url: "/Company/ReadAccountAdmin"
},
update: {
url: "/Company/SaveAccountAdmin",
contentType: "application/json; charset=utf-8",
type: "POST",
dataType: "json",
data: {
jsonCompanyContacts: "John Doe"
}
},
//destroy: {},
parameterMap: function …Run Code Online (Sandbox Code Playgroud) 我有一个ASP.Net MVC Kendo UI组合框,它被数据绑定到一个包含1000个记录的表.我已将MinLength属性设置为5,因此我只返回相关结果.问题是,用户可能需要一起更改文本值.有没有办法告诉控件刷新?
这是控件的代码......
@(Html.Kendo().ComboBoxFor(x => x.Product)
.Name("Product")
.DataTextField("Name") // Display value
.DataValueField("Id") //Return value
.MinLength(5)
.AutoBind(false)
.Suggest(true)
.Filter(FilterType.Contains)
.DataSource(source =>
{
source.Read(read =>
{
read.Action("Products", "Home").Data("onGetProducts");
});
})
)
Run Code Online (Sandbox Code Playgroud) asp.net-mvc kendo-ui kendo-grid kendo-combobox kendo-asp.net-mvc
我正在使用kendo ui网格.因为我已经使用批处理模式来保存值.如果我在一行中更改记录,那么具有相应行的值也将被更改,当我们单击保存时,这两个字段将保存到数据库中.
例如.我有一个网格像:
Integer Value
1 First
2 Second
3 Third
4 Fourth
Run Code Online (Sandbox Code Playgroud)
如果我将值1更改为4,那么将更改4并且值也会动态更改.我的意思是我想在这里交换1和4.而且我也可以更改剩余的所有字段,但最后所有记录都必须保存到数据库中.我试过像
此代码将在网格更改功能中
var grid = $('#grid').data("kendoGrid");
var selectedRow = grid.select();
var selectedRowIndex = selectedRow.index();
console.log(selectedRowIndex);
var firstItem = dataSource.data()[selectedRowIndex];
var datalength = dataSource.data();
for (var i = 0; i < datalength.length; i++)
{
var dataItem = datalength[i].id;
if (dataItem == firstItem.get('id'))
{
var secondItem = dataSource.data()[i];
secondItem.set('id', dataItem);
}
}
Run Code Online (Sandbox Code Playgroud)
然后值正在变化,但值在更改后未传递给控制器.
首先,我有一个剑道网格.现在我动态地向DataSource添加一个复选框,如下所示:
var chkBox = "<input type='checkbox' id='chUpload'/><label for='chUpload'><a href='#' id='cbChoose'></a>test</label>";
var uploadedFiles =
[
{
facility: "Sunrise medical Laboratories",
documentName: "Lab Results",
documentType: "PDF",
selected: chkBox
}
];
Run Code Online (Sandbox Code Playgroud)
以下是复选框上实现的样式:
input[type="checkbox"]
{
display:none;
}
input[type="checkbox"] + label a
{
display:inline-block;
width:14px;
height:14px;
margin:-1px 4px 0 0;
vertical-align:middle;
background:url('../images/checkBox.png') right top no-repeat;
cursor:pointer;
float:right;
margin-top:10px;
margin-right:10px;
}
input[type="checkbox"]:checked + label a
{
background:url('../images/checkBox.png') -1px top no-repeat;
}
Run Code Online (Sandbox Code Playgroud)
我发现这些样式适用于我添加到面板栏选项卡的其他复选框,但在网格中,没有显示任何内容.
我创建了一个jsfiddle,黑盒子是样式复选框.我已经隐藏display:none;在CSS中以查看所有文本框的位置.如果正在使用,则不会在网格中显示检查自定义框.
有什么想法吗?
我在asp.net mvc中有kendo网格,我使用服务器包装器.我想要名为"行号"的附加列,它是简单的计数器(1,2,3,...).我希望这个计数器永远不会改变客户端排序.始终第一行是1秒,第2行是......,在"RowNumber"列中
我怎么能在剑道网格中这样做?
我不知道这叫什么,我用headerTemplate搞砸了很多但是无法弄清楚如何产生这种外观.我需要第二行列名称在排序和过滤方面"正常行动",但我尝试的所有内容都打破了这一点.我不知道headerTemplate是否是正确的方法吗?这种分组有名称吗?我的研究结果很多,所以我怀疑我使用了错误的关键词.这个布局叫什么?

注意:出于安全考虑,我无法发布代码转储(对图像也非常紧张).如果需要特定的东西,请告诉我,我会尝试匿名.但是,大多数情况下,我只是在寻找除了使用headerTemplate之外的其他建议.
我用两个表创建了一个测试SQL Server数据库:WorkItem和WorkItemNote。它们之间有一个外键,因此一个WorkItem可以具有许多WorkItemNote记录。我试图在Kendo网格中显示WorkItems。该Action返回Json,但网格中未显示任何内容。
如果我仅使用要显示的属性创建一个匿名对象,它将起作用。这表示具有关系(WorkItemNote)的实体(WorkItem)无法显示在Kendo网格中。
有没有办法解决?
我的网格:
<div>
@(Html.Kendo().Grid<TryToLoadGrid.Models.WorkItem>()
.Name("grid")
.HtmlAttributes(new { style = "height:380px;" } )
.Sortable()
.Pageable()
.DataSource(dataSource => dataSource.Ajax().Read(read => read.Action("GetActiveWorkItems", "Home")))
.Columns(columns =>
{
columns.Bound(workItem => workItem.Title);
columns.Bound(workItem => workItem.Description);
}
)
)
</div>
Run Code Online (Sandbox Code Playgroud)
我的动作代码是:
public ActionResult GetActiveWorkItems([DataSourceRequest]DataSourceRequest request)
{
using (TaskManagerContext context = new TaskManagerContext())
{
IQueryable<WorkItem> list = context.WorkItems.Where(x => x.IsActive == true);
DataSourceResult result = list.ToDataSourceResult(request);
return Json(result);
}
}
Run Code Online (Sandbox Code Playgroud)
从“动作”中可以看出,我对网格的WorkItemNotes甚至都不感兴趣。
为了证明这是由于这种关系造成的,我创建了第二个Action,它可以正常工作并显示数据:
public ActionResult GetActiveWorkItems2([DataSourceRequest]DataSourceRequest request)
{
using (TaskManagerContext context = new TaskManagerContext())
{
List<WorkItem> …Run Code Online (Sandbox Code Playgroud) 我有一个用于添加/编辑的kendo弹出模板.我需要在该模板的列表视图中显示带有复选框的产品列表.我找到了此链接以创建复选框的列表视图.我如何在另一个模板中使用它.
HTML
<script type="text/x-kendo-tmpl" id="myTemplate">
<div class="item click" value="#=ProductID#" data-bind="checked: isSelected">
<input type="checkbox" class="click" />
<span class="checkbox">#:ProductName#</span>
</div>
</script>
<!-- Kendo popup editor template -->
<script id="popup_editor" type="text/x-kendo-template">
<div style="width:700px">
<div style=" margin-left:100px">
<label for="Product">Products </label>
<div id="listView" class="k-listview" style="width:150px;height:250px;overflow-y:scroll;margin-top:10px">
</div>
</div>
</div>
</script>
Run Code Online (Sandbox Code Playgroud)
脚本
$scope.productddlDataSource = new kendo.data.DataSource({
type: "json",
transport: {
read: "api/product"
}
});
$("#listView").kendoListView({
dataSource: $scope.productddlDataSource,
template: kendo.template($("#myTemplate").html())
});
//KENDO UI POP_UP
$scope.gridOptions = {
dataSource: $scope.data,
sortable: true,
filterable: true,
scrollable: false, …Run Code Online (Sandbox Code Playgroud) 为什么kendo在使用Kendo网格的角度路由模板中加载Jquery之前.
我已经订购了脚本,同时通过角度路由模板单击任何事件,在控制台中获取此错误.
注意:在页面刷新中,脚本正确加载,应用程序正常工作,没有出现任何错误.
仅发生在事件路由中.kendo在jquery之前加载为什么.
order scripts :
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.9.1/jquery.js"></script>
<script src="https://code.angularjs.org/1.3.8/angular.js"></script>
<script src="//kendo.cdn.telerik.com/2016.2.714/js/kendo.all.min.js"></script>
<script src="https://code.angularjs.org/1.3.8/angular-sanitize.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular-ui-router/0.3.1/angular-ui-router.js"></script>
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用枚举字段过滤网格数据源。
似乎OData API已弃用/删除了在服务器端具有无前缀前缀枚举的功能。
我将以下内容添加到网格的筛选器中。
let fd1: FilterDescriptor = {
field: 'orderStatus',
operator: 'eq',
value: "SOPSModel.OrderStatusEnum'Open'",
ignoreCase: false
}
this.filter.filters.push(fd1);
Run Code Online (Sandbox Code Playgroud)
问题似乎是kendo-data-query中提供的toOdataString函数将Enum标识为字符串,然后将其引用并转义,这使得服务器端API拒绝枚举并失败。
我设置了自己的过滤器解析器,该解析器工作正常,但是使用已添加到Grid中的新过滤器选项,我确实需要一个适当的解决方案。
因此,有人可以指出我如何处理Telerik编写的OData枚举吗?
kendo-grid ×10
kendo-ui ×8
angularjs ×2
asp.net-mvc ×2
javascript ×2
jquery ×2
.net ×1
c# ×1
checkbox ×1
css ×1
grouping ×1
html5 ×1
json ×1