我正在使用Telerik Grid,我希望有一个列使用Templateto access to other accion.我的代码Grid是:
columnas.Template(o =>
{
%>
<%=Html.ActionLink("Texto","Prueba","Peticion", new { id= o.PeticionID }) %>
<%
}).Title("Prueba");
Run Code Online (Sandbox Code Playgroud)
当我运行应用程序时,我收到错误:
CS1525:无效的表达式术语')'
然后它显示了{角色o =>
关于我缺少什么的任何想法?
在过去几天搜索之后,我正式陷入困境.我正在研究将对象绑定到Telerik MVC 3 Grid,但问题是它需要动态创建的列(不是自动生成的).其中三列是已知的,其他列是未知的,这是棘手的部分.基本上,它可以像这些例子:
KnownColumn1 | KnownColumn2 | UnknownColumn1 | KnownColumn3 KnownColumn1 | KnownColumn2 | UnknownColumn1 | UnknownColumn2 | UnknownColumn3 | KnownColumn3等
因为我将未知列放在列表中(我也尝试过字典,所以我可以获取列名),这在绑定时对我来说很复杂.我的代码如下:
模型(可以有零到几百行,但是这个模型在List类型的视图模型中,也可以有0到20个动态添加的列)
public class VendorPaymentsGLAccount
{
public string GeneralLedgerAccountNumber { get; set; }
public string GeneralLedgerAccountName { get; set; }
public string DisplayName { get { return string.Format("{0} - {1}", GeneralLedgerAccountNumber, GeneralLedgerAccountName); } }
public Dictionary<string, double> MonthAmount { get; set; }
public double Total { get { return MonthAmount.Sum(x => x.Value); } }
public List<string> Columns { …Run Code Online (Sandbox Code Playgroud) 我正在使用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)
所以我希望能够让用户点击复选框并更改我的模型的值,但不幸的是,这不起作用.我可以看到视觉复选框的值被更改但我没有看到红色三角形标记单元格已更改,当我点击添加新项目按钮时,复选框中的值消失.
请告诉我我做错了什么.
提前致谢.
我正在使用基类来修改ASP.Net页面上出现的任何Telerik RadGrid的行为.在基类中,我想在许多常见列上执行某些操作(设置Css,工具提示等),但不是每个网格中都存在每个公共列.
在ItemDataBound事件中,我正在获取GridDataItem的实例,而我想要获取对GridDataItem的一个或多个包含单元格的引用:
var cell = gridDataItem["ColumnUniqueName"]
Run Code Online (Sandbox Code Playgroud)
问题是,如果命名列不存在,则抛出GridException:
找不到绑定到列名"ColumnUniqueName"的单元格
有没有办法在引用列之前按名称测试列的存在,还是我使用try catch?
基本上,我正在寻找这个演示的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
在我的页面上,我有:
搜索工作正常 - 我可以输入一些文本或选中过滤器部分中的复选框,并显示相应的结果.
分页工作正常只有在我加载页面时才使用它(这意味着在我点击搜索按钮之前,在这种情况下,网址是'...主页').
但是如果首先单击搜索(在这种情况下,url将变为'... Home/Search')然后尝试转到网格上的另一个页面,那么我在Search方法中得到一个异常,因为model.Filter参数是null(System.NullReferenceException:对象引用未设置为对象的实例.)
我试图以许多不同的方式解决问题(使用RedirectToAction方法,将过滤器存储到会话并在Search方法中使用它,...)但是没有解决方案适用于所有场景.有任何想法吗?
我的简化代码:
HomeController的:
public ActionResult Index()
{
// On page load display all data without filters.
var filter = new OverviewFilterModel
{
Type1 = true,
Type2 = true,
WorkingOrder = ""
};
ViewBag.Results = GetResults(filter);
return View(new HomeModel { Filter = filter });
}
public ActionResult Search(HomeModel model)
{
ViewBag.Results = GetResults(model.Filter);
return View("Index");
}
public class OverviewFilterModel
{
public bool Type1 { get; set; …Run Code Online (Sandbox Code Playgroud) 有人可以解释如何实现以下目标.Telerik Grid组件将使用以下代码生成非编码HTML:
@(Html.Telerik().Grid(Model)
.Name("Grid")
.DataKeys(keys => keys.Add(c => c.ProductID))
.DataBinding(dataBinding => dataBinding.Server()
.Select("ColumnSettings", "Grid")
.Update("ColumnSettings_Save", "Grid")
.Delete("ColumnSettings_Delete", "Grid"))
.Columns(columns =>columns.LoadSettings((IEnumerable<GridColumnSettings>)ViewData["Columns"]))
.Sortable()
)
Run Code Online (Sandbox Code Playgroud)
大概这是因为方法调用包含在"@(....)"中.每当我用自己的组件尝试这个时,结果都是编码的Html.我知道我可以使用Render()输出MvcHtmlString,然后我的Html没有编码,但Telerik网格似乎没有.Render().
谁能向我解释这个秘密?
我在我的Asp.Net MVC3应用程序中使用telerik网格,我想将格式为dd/mm/yyyy的日期绑定到网格的其中一列,如下所示:
Html.Telerik().Grid<TestResults>()
.Name("TestResultGrid")
.DataKeys(keys => keys.Add(c => c.SourceProgramId))
.Columns(columns =>
{
columns.Bound(c => c.OriginalSourceProgramId).Title("Original Case ID").Width("90").Visible(IsOriginalCaseIdVisible);
columns.Bound(c => c.SourceProgramId).Title("Source Program ID").Width ("90").Visible(!IsOriginalCaseIdVisible);
columns.Bound(c => c.Name).Title("Name").Width("140");
columns.Bound(c => c.Points).Title("Points").Width("50");
columns.Bound(c => c.ProgramName).Title("Program").Width("80");
columns.Bound(c => c.DOB).Title("Created Date").Width("80");
})
.DataBinding(dataBinding =>
dataBinding.Ajax()
.Select("_TestResutls", "Test"))
.ClientEvents(events => events
.OnDataBinding("Grid_onDataBinding")
.OnDataBound("Grid_onDataBound")
.OnRowDataBound("onRowDataBound")
.OnRowSelect("onRowSelected"))
.Pageable(paging => paging.PageSize(10))
.NoRecordsTemplate("<b>No Records to display.<b>")
.Sortable()
.Selectable()
.HtmlAttributes(new { @class = "grid_table" })
.Footer(true)
.Render();
Run Code Online (Sandbox Code Playgroud)
DOB的dataType是DateTime?.我想显示格式日期dd/mm/yyyy.我可以将它转换为ToString()来实现这一点,但我已经对此列进行了排序.当我按此列排序时,它将值视为字符串而不返回预期结果.此列可以为空,因此我也无法使用DOB.Date方法.有帮助吗?
我在两个层面上使用了Master-detail Telerik MVC Grid.
我现在使用外键列来显示汽车和客户的下拉列表.如何在第一级过滤第二个下拉列表?
码:
@(Html.Telerik().Grid<Models.ClientsModel>()
.Name("Grid")
.ToolBar(commands => commands.Insert().ButtonType(GridButtonType.ImageAndText))
.DataKeys(keys => keys.Add(c => c.ClientLineID))
.Columns(columns =>
{
columns.ForeignKey(o => o.ClientID, (System.Collections.IEnumerable)ViewBag.Client, "ClientID", "Name")
.Width(330)
.Title("Client");
columns.Command(commands =>
{
commands.Edit().ButtonType(GridButtonType.ImageAndText);
commands.Delete().ButtonType(GridButtonType.ImageAndText);
}).Width(250);
})
.DetailView(car => car.ClientTemplate(
Html.Telerik().Grid<Delta.Models.CarModel>()
.Name("Car_<#= ClientID #>")
.DataKeys(keys => keys.Add(c => c.LineID))
.ToolBar(commands => commands.Insert().ButtonType(GridButtonType.ImageAndText))
.DataBinding(dataBinding =>
{
dataBinding.Ajax()
.Select("_CarLineIndex", "Client", new { id = "<#= ClientID #>" })
.Insert("_CarLineCreate", "Client", new { id = "<#= ClientID #>" })
.Update("_CarLineUpdate", "Client")
.Delete("_CarLineDelete", "Client");
}) …Run Code Online (Sandbox Code Playgroud) 我正在研究nopcommerce2.8版本.我有一个telerik插件实现的问题来创建新的网格.我实施了一个概念,我希望为不同的客户提供不同价格的产品.因此,要为不同的客户分配新价格,请在管理面板中使用telerik在编辑产品变量页面中创建网格.我创建了一个新选项卡来显示这些详细信息.我能够在网格中显示客户名称和价格,但是当我在编辑一行后点击更新按钮时,我无法调用更新功能.同样的更新功能我也要求删除网格行,所以当我点击删除相同的更新功能获取触发器.我认为在View中错过了一些设置.请帮我解决这个更新问题.
我的nopcommerce的模型,视图和控制器如下所示.
谢谢.
//Model
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Web.Mvc;
using FluentValidation.Attributes;
using Nop.Admin.Models.Customers;
using Nop.Admin.Validators.Catalog;
using Nop.Web.Framework;
using Nop.Web.Framework.Localization;
using Nop.Web.Framework.Mvc;
using Telerik.Web.Mvc;
namespace Nop.Admin.Models.Catalog
{
public partial class CustomerProductPriceModel : BaseNopModel
{
public int Customer_Id { get; set; }
[NopResourceDisplayName("Customer Name")]
public string Customer_name { get; set; }
[NopResourceDisplayName("Price")]
public decimal Price { get; set; }
[NopResourceDisplayName("Unit")]
public string Units { get; set; }
}
}
// view
@(Html.Telerik().Grid<CustomerProductPriceModel>()
.Name("Grid")
.DataKeys(x =>
{
x.Add(y => y.Customer_Id);
})
.DataBinding(dataBinding …Run Code Online (Sandbox Code Playgroud) telerik-grid ×10
asp.net-mvc ×5
telerik ×5
telerik-mvc ×4
c# ×3
asp.net ×1
data-binding ×1
datetime ×1
dynamic ×1
javascript ×1
kendo-ui ×1
nopcommerce ×1
radgrid ×1
razor ×1