我正在使用VB.NET中的MVC3开发一个Web应用程序.
我在使用以下操作链接在webgrid上设置列时遇到困难
编辑| 细节| 删除
@*@Html.ActionLink("Edit", "Edit", New With {.id = currentItem.PrimaryKey}) |
@Html.ActionLink("Details", "Details", New With {.id = currentItem.PrimaryKey}) |
@Html.ActionLink("Delete", "Delete", New With {.id = currentItem.PrimaryKey})*@
Run Code Online (Sandbox Code Playgroud)
我试过使用下面的语法,但我得到一个错误,其中未声明项目.
grid.Column(header:="",format:=(item)=> item.GetSelectLink("Custom Text"))
如何引用webgrid中的当前行或项目以使其工作?
任何帮助非常感谢.
问候
詹姆士
public class UserDetailsModel
{
public int ID { get; set; }
public string LoginID { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string IsDeleted { get; set; }
public DateTime CreatedOn { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
控制器:
public ActionResult Index()
{
object model = obj.getUserList();
return View(model);
}
public ActionResult Delete(int id)
{
BAL_obj.deleteUser(id);
object model = obj.getUserList();
return View("Index",model);
}
Run Code Online (Sandbox Code Playgroud)
Index.cshtml:
@model IEnumerable<WebGrid1App.Models.UserDetailsModel>
@{
WebGrid grid = new …Run Code Online (Sandbox Code Playgroud) 我正在寻找一些教程或解决方案,展示如何一次创建具有少量高级功能的Webgrid:每行的分页,排序edit和delete按钮,每行的复选框,edit以及delete检查的行和select all按钮的按钮.
我知道我可以使用jQuery和点击事件简单地完成所有这些功能.但我正在寻找一些干净的解决方案,这种解决方案以良好的方式制作并尽可能多地使用ASP.NET MVC技术......
简单问:如何让文本框显示值.item.LastName上的代码失败
@model List<Mvc2010_11_12.Models.Employee>
@{
var grid = new WebGrid(source: Model,defaultSort: "FirstName",rowsPerPage: 3);
}
<div id="grid1">
@grid.GetHtml(columns: grid.Columns(
grid.Column("LastName"),
grid.Column(format: (item) => Html.TextBox("LastName", item.LastName))
))
</div>
Run Code Online (Sandbox Code Playgroud) 我正在使用System.Web.Helpers.WebGridASP.NET MVC 3 Razor项目,我无法理解为什么a的格式参数WebGridColumn是a Func<dynamic, object>.
如果我创建这样的列...
grid.Column(
format: x => string.Format("{0:d}", x.StartDate)
);
Run Code Online (Sandbox Code Playgroud)
...我没有在StartDate属性上获得强大的输入.如果我试着像这样绕过它......
grid.Column(
format: (MyObjectType x) => string.Format("{0:d}", x.StartDate)
);
Run Code Online (Sandbox Code Playgroud)
...我在运行时被告知我的lambda不能被强制转换为Func<dynamic, object>.有什么方法可以在这里使用非动态lambda吗?即使它只是<object, object>?
(我在.NET 4.0中,并且Func<in T, out TResult>应该是T的逆变,但我对协方差和逆变与动态如何一起工作感到困惑.)
有没有人使用MVC 3 WebGrid助手实现内联编辑?我已经对这个主题进行了很多搜索,但是没有找到很多建议.此外,我不能使用其他第三方或开源网格.
提前致谢!
我在MVC 3的剃刀视图中使用webgrid.下面是我的webGrid看起来的样子,我想让整个行可以点击,也可以点击传递值到javascript方法.
我能够在所有列的文本上调用我的javascript方法.我希望在整个行的任何地方点击都会发生同样的情况.
请指导我这个.谢谢
@grid.GetHtml(
columns: grid.Columns(
grid.Column("CompanyName", format: @<text><a href="javascript:SubmitValues('@item.Col1','@item.Col2','@item.Col3');">@item.CompanyName</a></text>, header: "ABC"),
grid.Column("CompanyAddress", format: @<text><a href="javascript:SubmitValues('@item.Col1','@item.Col2','@item.Col3');">@item.CompanyName</a></text>, header: "DEF"),
))
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用Webgrid,我可以显示数据,但bool值是我遇到问题的地方.我想只显示一个具有my bool值的复选框.我已经能够在网格中获得一个复选框,但它是可编辑的,并没有正确显示值.
grid.GetHtml(tableStyle: "table", alternatingRowStyle: "alternate", headerStyle: "header",
columns: grid.Columns(grid.Column(columnName: "string1", header: "String1", format: @<text>@item.string1</text>),
grid.Column(columnName: "bool1", header: "bool1", format: bool1? </text>),
Run Code Online (Sandbox Code Playgroud)
如果有人之前已经这样做了,并且可以阐明如何正确显示一个bool作为一个复选框,将不胜感激!
我正在使用带Razor的MVC3,用于显示我正在使用WebGrid的网格,并且对于这个非常网格的分页,我使用以下代码.
我的问题:分页按钮在选择/单击时以及未选中/单击时都应保持相同的大小.
我有一些CSS问题,我已经使用CSS和javascript来实现我的客户想要的设计我已经在这个小提琴链接复制了它http://fiddle.jshell.net/Z5L4g/
剃刀代码
@grid.Pager(mode: WebGridPagerModes.All, numericLinksCount: 15, firstText: "<<", lastText: ">>", previousText: "<", nextText: ">")
Run Code Online (Sandbox Code Playgroud)
我的CSS代码 正文{font-family:Calibri; 背景色:#D8D8D8; margin-top:0px; 文字修饰:无; }
#footer:not([href]) {
letter-spacing: 0px;
}
#footer {
text-align: center;
margin-top: 10px;
}
.pagingCss {
font-size: 13px;
}
.whiteBox {
background-color:
white;
color:
black;
padding-right: 7px;
padding-left: 7px;
padding-top: 4px;
padding-bottom: 4px;
text-decoration: none;
margin-top: 10px;
letter-spacing: 0px;
}
.blackBox {
background-color:
black;
color:
white;
padding-right: 7px;
padding-left: 7px;
padding-top: 4px;
padding-bottom: 4px; …Run Code Online (Sandbox Code Playgroud) 我正在使用类似于此处提到的webgrid
@{
var grid = new WebGrid(canPage: true, rowsPerPage: ThisController.PageSize, canSort: true, ajaxUpdateContainerId: "grid");
grid.Bind(Model.Employees, rowCount: Model.TotalRecords, autoSortAndPage: false);
grid.Pager(WebGridPagerModes.All);
@grid.GetHtml(htmlAttributes: new { id="grid" },
columns: grid.Columns(
grid.Column(format: (item) => Html.ActionLink("Edit", "Edit", new { EmployeeID = item.EmployeeID })),
grid.Column("FullName"),
grid.Column("Title")
));
}
Run Code Online (Sandbox Code Playgroud)
但在我的情况下,我期待超过2000条记录,我想加载每页只加载50条记录,以便页面加载速度更快.如何确保在加载页面时仅加载前50条记录.当我的用户单击page2时,我想加载下一组50条记录,依此类推.你们中的任何人都遇到过类似的问题,请给我一些示例代码