我正在使用剑道 ui 网格详细信息模板。在网格中,我有一个下拉列表,其中包含一些值,例如下拉列表、文本框等。如果我添加新记录,那么我不想显示展开/折叠图标。选择下拉列表后,选定的值将是下拉列表,然后我只想显示展开/折叠图标。我怎样才能使用剑道 ui 做到这一点。希望你明白我的问题。我试图在 dataBound 事件中像这样访问它
dataBound: function (e) {
var dataSource = this.dataSource;
this.element.find('tr.k-master-row').each(function() {
this.tbody.find("tr.k-master-row>.k-hierarchy-cell>a").hide();
});
}
Run Code Online (Sandbox Code Playgroud) 我有一个带有大数据源和分页的Kendo UI Grid.
我有一个事件触发我知道我想要选择的基础数据项,但我不确定如何以编程方式页面/选择网格中的此项.如果该项目不在当前网格页面上,则当数据不在当前页面上时,我无法使用datasource.view()来查看.
有谁知道我如何通过其底层数据源对象选择项目?
我有类似的情况,我在@的地方:http: //jsfiddle.net/Sbb5Z/1050/ 我可以使用以下内容获取数据项:
change: function (e) {
var selectedRows = this.select();
var dataItem = this.dataItem(selectedRows[0]);
}
Run Code Online (Sandbox Code Playgroud)
但后来我不知道如何选择其他网格中的同一行.
基本上在一个网格的选择事件中,我想去另一个网格中选择相同的项目.这些数据源不同,因为它们具有不同的页面设置,但它是相同的底层数据数组.
我在目标网格中有数据项 - 但我不知道如何在目标网格中分页/选择它.
编辑: 我提出的最好的软件是创建一个与原始参数相同的数据源,并以编程方式对其进行分页,直到找到我要查找的内容.当然必须有更好的方法吗?
我不了解Kendo模板的基本知识,所以也许有人可以向我解释一下.网格中单元格的模板示例来自Telerik示例代码.
template:"<input type='checkbox' #= IsAdmin ? checked='checked':'' # />
Run Code Online (Sandbox Code Playgroud)
最终,这会生成一个输入标记,如果IsAdmin的值为true,则包含"checked ='checked'"
我不明白评估的背景
#= IsAdmin ? checked = 'checked' : '' #
Run Code Online (Sandbox Code Playgroud)
文档说"#="表示"渲染为文字"(无论这意味着什么),我理解"IsAdmin"是评估/执行模板时提供的值.
#=后面的内容看起来像Javascript,但如果只是那样,它只会将名为"checked"的变量的值设置为"checked"或空字符串.
是个 ?这里的运算符真的是javascript,还是剑道模板语言?我没有看到过与运营商特定的Kendo特定语言.但如果这真的是一个Javascript?运算符,它是如何工作的,我们得到一个文字"checked ='checked',而不是设置一个名为"checked"的var,值为'checked'.
叫我困惑.
我的问题可能类似于,
和
$("#button").click(function() {
$('html, body').animate({
scrollTop: $("#elementtoScrollToID").offset().top
}, 2000);
});
Run Code Online (Sandbox Code Playgroud)
我也尝试了这个:
this.element.find(".k-grid-content").animate({
scrollTop: this.select().offset().top });
}
Run Code Online (Sandbox Code Playgroud)
但是,提供给上述问题的解决方案对我有帮助,我对第二个链接提供的小提琴链接有问题:http://jsfiddle.net/blackjim/9GCYE/5/
当我尝试获取行的表中某处的行的视图时,该解决方案正常工作.但是,在那之后,(即,在从网格底部获得一行的焦点之后),当我尝试从顶部选择一行时,控件仍然向下滚动,因此滚动功能的目的变得毫无意义那里.
我有一个搜索框,我可以在其中键入与行数据匹配的内容,如果匹配,则应触发滚动,以便将选定的行添加到用户视图中.
上述解决方案中的代码适用于此标准.但是,现在,再次,如果我尝试搜索与网格顶部的某些行匹配的内容,则滚动不会从底部(先前选定的行)发生到网格顶部的新选择的行.
我如何修改上面的代码以满足我的需要?
我正在使用Kendo UI Grid Edit和Delete命令来管理数据.
我遇到的问题是我有一个需要应用于删除按钮的自定义样式.我可以在DataBound事件上添加类,但是当用户尝试编辑数据时,样式会在按钮上消失并返回到默认的Kendo UI样式.
Jquery用来添加样式
function onRowBound(e) {
$(".k-grid-delete").removeClass("k-button k-button-icontext").addClass("btn btn-danger");
}
Run Code Online (Sandbox Code Playgroud)
剑道MVC活动
columns.Command(command => command.Edit()).Title("Edit");
columns.Command(command => command.Destroy()).Title("Remove")
.........
.Events(e =>
{
e.DataBound("onRowBound");
e.Cancel("onRowBound");
e.Edit("onRowBound");
}))
Run Code Online (Sandbox Code Playgroud)
我尝试在Cancel事件上触发相同的方法,但样式仍然恢复为默认值.有没有办法设置样式,最好不使用"ClientTemplate"功能?
我有一个带有一些环境数据的Kendo Grid.网格的一个字段是"isDefault",它接收1或0(对于真或假).在数据库中,我有一个触发器,当某个记录设置为isDefault = 1时,任何其他记录都更新为isDefault = 0,只是为了确保只有一个默认环境.
Kendo网格工作正常,它绑定数据并更新记录就好了但是在更新之后,网格没有刷新所有记录,如果有,比方说,记录1,isDefault = 1,我更新记录4到isDefault = 1触发器被触发并将所有其他记录更新为isDefault = 0但网格仍然显示记录1,isDefault = 1,现在记录4,isDefault = 1
这是我视图中的代码:
Html.Kendo().Grid<Models.Environment>()
.Name("environmentGrid")
.Sortable()
.ToolBar(tb => tb.Create())
.Editable(editable => editable.Mode(GridEditMode.PopUp))
.Columns(cols =>
{
cols.Bound(c => c.Name).Width(150).Sortable(true);
cols.Bound(c => c.ConnectionString).Width(150).Sortable(true);
cols.Bound(c => c.Template).Width(150).Sortable(true);
cols.Bound(c => c.isDefault).Width(150).Sortable(true);
cols.Bound(c => c.StatusID).Width(150).Sortable(true);
cols.Command(command => { command.Edit();}).Width(60);
})
.DataSource(ds => ds
.Ajax()
.Model(model =>
{
model.Id(m => m.EnvironmentID);
})
.Read(r => r.Action("GetEnvironments", "Admin"))
.Update(update => update.Action("UpdateEnvironments", "Admin"))
.Create(update => update.Action("UpdateEnvironments", "Admin"))
)
Run Code Online (Sandbox Code Playgroud)
这是我的控制器上的代码:
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult UpdateEnvironments([DataSourceRequest] DataSourceRequest …Run Code Online (Sandbox Code Playgroud) 我有一个看起来像这样的观点:
@model Wellbore
@(Html.Kendo().Grid<WellboreSection>()
.Name("wellboresectiongrid")
.Columns(columns =>
{
columns.Bound(p => p.Name);
columns.Bound(p => p.Lenght);
columns.Bound(p => p.SectionNumber);
columns.Bound(p => p.Volume);
columns.Bound(p => p.HoleDiameter);
columns.Command(command =>
{
command.Edit();
command.Destroy();
}).Width(240);
})
.ToolBar(toolbar => toolbar.Create())
.Editable(editable => editable.Mode(GridEditMode.PopUp).TemplateName("WellboreSectionPopupTemplate"))
.Sortable()
.Scrollable()
.DataSource(dataSource => dataSource
.Ajax()
.PageSize(10)
.Events(events => events.Error("KendoGrid.ErrorHandler"))
.Model(model => model.Id(p => p.Id))
.Create(create => create.Action("WellboreSection_Create", "WellboreSection",
new RouteValueDictionary(new Dictionary<string, object>() { { "wellboreId", Model.Id } })))
.Read(read => read.Action("WellboreSection_Read", "WellboreSection",
new RouteValueDictionary(new Dictionary<string, object>() { { "wellboreId", Model.Id } })))
.Update(update …Run Code Online (Sandbox Code Playgroud) 我有一个Kendo Grid ::
@(Html.Kendo().Grid<Models.PassengerGrid>()
.Name("Passenger")
.Columns(columns =>
{
columns.Bound(x => x.PassengerID).Hidden(true);
columns.Bound(x => x.Name).Title("Name").Width(500).Encoded(true);
columns.Command(command => { command.Edit(); command.Destroy(); });
})
.Editable(editable => editable.Mode(GridEditMode.InLine))
.HtmlAttributes(new { style = "height:430px;" })
.DataSource(dataSource => dataSource
.Ajax()
.PageSize(5)
.ServerOperation(true)
.Model(model => { model.Id(p => p.PassengerID); })
.Read(read => read.Action("PassengerDetailTemplate", "GetData"))
.Create(update => update.Action("EditingPopup_Update", "Grid"))
.Update(update => update.Action("EditingPopup_Update", "Grid"))
.Destroy(update => update.Action("EditingPopup_Destroy", "Grid"))
)
)
Run Code Online (Sandbox Code Playgroud)
我在其中使用Javascript手动添加新行::
var Grid = $("#Passenger").data("kendoGrid");
var datasource = Grid.dataSource;
datasource.add({
PassengerID: response.PassengerID,
Name: response.Name
});
datasource.sync();
Run Code Online (Sandbox Code Playgroud)
但问题是当我尝试编辑并在编辑时按下取消按钮,然后该行将从网格中删除.
我已经提到了这个问题链接 …
我有kendo网格,里面有4列
[mac,level,timestamp,message].我需要将所有值存储timestamp在一个数组中的列下.我试过但是找不到任何方法在特定列中遍历.知道如何使用java脚本执行此操作吗?
我有一个angular指令,它返回kendo网格数据源值(gridDataDisplayed).使用相同的数据源,我必须将它绑定到detailInit中的嵌套网格.
scope.gridsource = new kendo.data.DataSource({
pageSize: options.pSize,
transport: {
read: function (options) {
scope.getDataMethod({ pageDetails: options }).then(function (gridDataDisplayed) {
options.success(gridDataDisplayed);
}, function (error) {
//error
});
}
},
detailInit: detailInitMethod
});
Run Code Online (Sandbox Code Playgroud)
在detailInitMethod中,我使用了从服务调用返回的相同数据,并且只显示了"gridDataDisplayed"中的几列.如何将其绑定到嵌套网格?
在我的指令中,模板代码是:
template: '<div><kendo-grid k-options="gridOptions" k-data-source="gridDataSource"></kendo-grid></div>',
Run Code Online (Sandbox Code Playgroud)
提前致谢.
kendo-grid ×10
kendo-ui ×8
javascript ×4
jquery ×3
telerik ×3
asp.net-mvc ×2
c# ×2
angularjs ×1
scroll ×1
selecteditem ×1
templates ×1