我有一个允许用户过滤的网格.如果用户更改用于填充网格的搜索词,则上一次搜索的过滤器将保留在原位.
<label for="UserName">
User Name:</label>
<%= Html.TextBox("UserName", "") %>
<input id="btnSearch" type="submit" value="Submit" />
</p>
<div class="<%= "t-" + Html.GetCurrentTheme() %>" style="width: 400px;">
<%= Html.Telerik().Grid<ADGroup>()
.Name("Groups")
.Columns(columns=>
{
columns.Add(c => c.GroupName).Width(350);
})
.Sortable()
.Filterable()
.Pageable(paging =>
paging.PageSize(20)
)
.Ajax(ajax => ajax.Action("_GetGroups", "GroupSearch", new { userName = "John Doh" }))
.BindTo((IEnumerable<ADGroup>)ViewData["Groups"])
%>
</div>
Run Code Online (Sandbox Code Playgroud)
当按下btnSearch时,我触发了网格的重新绑定.
<%
Html.Telerik().ScriptRegistrar()
.OnDocumentReady(() =>
{
%>
var groupsGrid = $('#Groups').data('tGrid');
$('#btnSearch')
.live("click", function() {
var user = $('#UserName').val();
// rebind the related grid
groupsGrid.rebind({
userName: …Run Code Online (Sandbox Code Playgroud) 通过Visual Studio创建MVC项目时,将使用".cshtml"文件创建视图.
KendoUI Server Wrappers在View中有一个模型,而KendoUI Web不仅没有任何模型,而且没有".cshtml"文件; 只有HTML.HTML似乎只是指向数据检索/更新的数据源,而KendoUI Server Wrappers需要一个模型传递给控制器以进行相同类型的操作.
两者有什么区别?我只是不明白KendoUI Web概念及其工作原理.如何在自适应渲染中创建".cshtml"文件的多个副本,以便在特定设备上呈现.如何通过KendoUI Web实现这一目标?
您还可以使用jQuery使用KendoUI Web工具集的选择器(其名称不会更改),而不是KendoUI Server Wrappers.你只是不知道jQuery选择器与KendoUI Server Wrappers有什么关系.
我发现很难对KendoUI Server Wrappers进行编程(即使它们应该更容易和更快地实现),因为特定扩展需要处理不同的事件而不知道选择器名称是什么.这似乎不是KendoUI Web工具集的情况.
我有使用Telerik的大量不同工具的长期经验,我不得不说,我喜欢它们.
但我需要另一种选择.为什么?好吧,我想开始一个开源项目.该项目将包含许多元素,包括MVC前端.遗憾的是,Telerik的许可证明确禁止在开源项目中使用其组件.
我将需要许多组件,但最值得一提的是Grid.任何人都可以建议一个可用且有价值的组件集,我可以在开源项目中使用它.
接受任何建议.
在名为form.ascx的mvc用户控件中,我有一个名为"details"的div中包含的Telerik Grid.
从一个名为edit.aspx的页面我写了以下内容:
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<div id="details">
<%Html.RenderPartial("form", Model != null ? Model.CurrentEntity : null); %>
</div>
<script type="text/javascript" language="javascript">
$(document).ready(function () {
$('#details').dialog(
{ modal: true,
title: "add",
width: 815,
buttons: {
'save': function () { $("form:first").trigger("submit"); },
'close': function () { $(this).dialog('close'); }
}
});
});
</script>
</asp:Content>
Run Code Online (Sandbox Code Playgroud)
问题是对话框永远不会显示!! 并且用户控件显示在母版页内部,就好像我没有使用对话框一样.
在"表单"用户控件内部,当我禁用网格时,每件事情都正常工作,对话框显示正确.当我使用萤火虫找出问题时,出现以下错误:
$未定义????
任何身体都有想法?
这是主页面:
<%@ Master Language="C#" Inherits="System.Web.Mvc.ViewMasterPage" %>
<%@ Import Namespace="Telerik.Web.Mvc.UI" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<link type="text/css" …Run Code Online (Sandbox Code Playgroud) 脚本注册器甚至在加载jquery.validation.min.js之后
Html.Telerik().ScriptRegistrar().jQuery(false)
Run Code Online (Sandbox Code Playgroud)
有没有办法告诉它不要这样做?
即使我尝试加载我需要的东西,执行此操作:
@Html.Telerik().ScriptRegistrar().jQuery(false).DefaultGroup(g =>
{
g.Add("telerik.common.min.js");
g.Add("telerik.tabstrip.min.js");
}
Run Code Online (Sandbox Code Playgroud)
例如,如果我在页面上有一个telerik网格,它将加载所有必要的脚本,包括grid.min,grid.editing和jquery.validate.min.
如果我忘了定义正确的脚本,我宁愿自己控制它,而不是仅仅为了得到错误,或者不起作用的元素.
如果我尝试使用此代码段:
@Html.Telerik().ScriptRegistrar().jQuery(false).Scripts(s =>
{
s.Add("telerik.common.min.js");
...
Run Code Online (Sandbox Code Playgroud)
它useTelerikContentDeliveryNetwork="true"在web.config中忽略,并在本地服务器上搜索脚本.我还是想用CDN.
UPD:实际上有一种方法可以使用telerik的CDN源,但如果由于某种原因它们已关闭,从项目的服务器加载所有东西?
使用Telerik MVC3网格,C#,.Net 2010;
我的剃刀视图中有一个网格:
@(Html.Telerik().Grid<ProductListItem>()
.Name("Grid")
.Columns(columns =>
{
columns.Bound(o => o.Current.Name).Sortable(true).Filterable(false).Width(150);
columns.Bound(o => o.Categories).Sortable(true).Filterable(false).Width(200);
//other column bindings...
})
.DataBinding(dataBinding => dataBinding.Ajax().Select(Model.GridAjaxRequestAction.ActionName, Model.GridAjaxRequestAction.ControllerName))
.Pageable(settings => settings.Total(Model.TotalRow))
.EnableCustomBinding(true)
.Sortable()
.Filterable()
Run Code Online (Sandbox Code Playgroud)
我想要做的是将网格的类别列设置为多行.
产品可能有很多类别,因此网格中的类别单元格应该是这样的;
Category0
Category1
Category2
Run Code Online (Sandbox Code Playgroud)
我尝试使用System.NewLine加入类别值,
并将此值分配给ProductListItem.Categories属性.它没有改变.文字仍然是单行.
提前致谢.
这是我的标记
<tr class="t-detail-row">
<td class="t-hierarchy-cell"></td>
<td class="t-detail-cell" colspan="5"></td>
</tr>
Run Code Online (Sandbox Code Playgroud)
我想找到带有类t-detail-row的tr并用类t-hierarchy-cell删除子td并用类t-detail-cell更改td的colspan
我试过这样的事
var newcolspan = $(e.row).find('.t-detail-row').children('td.t-detail-cell').attr('colspan');
$(e.row).find('.t-detail-row').children('td.t-hierarchy-cell').remove()
.children('td.t-detail-cell').attr('colspan',newcolspan+1);
Run Code Online (Sandbox Code Playgroud)
任何帮助将不胜感激.
有关情况的更具体细节
我想要实现的就是.当我们扩展Telerik MVC网格时,我们会在详细行中得到这个标记
<tr class="t-detail-row">
<td class="t-hierarchy-cell"></td>
<td class="t-detail-cell" colspan="5"></td>
</tr>
Run Code Online (Sandbox Code Playgroud)
我想消除 <td class="t-hierarchy-cell"></td>它.
得到标记为
<tr class="t-detail-row">
<td class="t-detail-cell" colspan="Current+1"></td>
</tr>
Run Code Online (Sandbox Code Playgroud)
为此我虽然做了这样的事情
在网格扩展事件,如果我可以调用jquery函数然后因为我不会生成详细行标记,直到我们扩展网格
function onExpandingtheGrid(){
$('tr.t-detail-row').find('td.t-hierarchy-cell').remove();
$('tr.t-detail-row').find('td.t-detail-cell').attr('colspan',newcolspan+1);
}
Run Code Online (Sandbox Code Playgroud)
谢谢
解
.ClientEvents(exp => exp.OnDetailViewExpand("onExpandingtheGrid"))
Run Code Online (Sandbox Code Playgroud)
和你的上面的jquery函数雅虎中提到的休息!
我正在使用Kendo UI MVC网格.该模型的一个属性是bool,所以我需要将它作为复选框呈现在网格中.默认情况下,Kendo UI会在列中将其显示为"true"和"false"值.所以你需要第一次点击获取复选框,然后第二次点击更改组合框的值.我没有设置网格的默认值,而是设置ClientTemplate,所以我得到了复选框而不是"true"和"false"值.
c.Bound(p => p.GiveUp)
.Title("Giveup")
.ClientTemplate("<input type='checkbox' id='GiveUp' name='GiveUp' #if(GiveUp){#checked#}# value='#=GiveUp#' />")
.Width(50);
Run Code Online (Sandbox Code Playgroud)
此网格使用批量编辑和网格编辑(GridEditMode.InCell)
.Editable(x => x.Mode(GridEditMode.InCell))
.DataSource(ds => ds.Ajax()
.ServerOperation(false)
.Events(events => events.Error("error"))
.Batch(true)
.Model(model => model.Id(p => p.Id))
.Read(read => read.Action("Orders", "Order").Data("formattedParameters"))))
Run Code Online (Sandbox Code Playgroud)
所以我希望能够让用户点击复选框并更改我的模型的值,但不幸的是,这不起作用.我可以看到视觉复选框的值被更改但我没有看到红色三角形标记单元格已更改,当我点击添加新项目按钮时,复选框中的值消失.
请告诉我我做错了什么.
提前致谢.
基本上,我正在寻找这个演示的MVC版本:
http://demos.telerik.com/kendo-ui/grid/filter-menu-customization
这是我目前拥有的:
.Columns(columns =>
{
columns.Bound(e => e.ID)
.Hidden();
columns.Bound(e => e.SearchFunctionCode)
.Hidden();
columns.Bound(e => e.SearchFunctionDesc)
.Title("Search Function")
.Filterable( *** WHAT GOES HERE? *** )
.HtmlAttributes(new { style = "text-align: center" })
.HeaderHtmlAttributes(new { style = "text-align: center" });
Run Code Online (Sandbox Code Playgroud)
我仍然引用javascript,还是有另一种方法?
<script type="text/javascript">
function SearchFunctionFilter(element) {
element.kendoDropDownList({
dataSource: searchfunctions(),
optionLabel: "--Select Value--"
});
}
</script>
Run Code Online (Sandbox Code Playgroud) javascript asp.net-mvc telerik-mvc telerik-grid kendo-asp.net-mvc
我有一些计时问题,并且想知道在saveChanges保存完成时是否有办法进行回调?
telerik-mvc ×10
telerik ×4
asp.net-mvc ×3
c# ×3
jquery ×3
telerik-grid ×3
javascript ×2
kendo-ui ×2
.net ×1
jquery-ui ×1
kendo-grid ×1
open-source ×1