标签: webgrid

Razor webgrid ajax分页和排序

我正在尝试学习如何在MVC3中使用Razor WebGrid.ajaxUpdateCallback参数如何工作?

c# webgrid razor asp.net-mvc-3

28
推荐指数
2
解决办法
5万
查看次数

到WebGrid还是不去WebGrid ......答案是什么?

我正在阅读并听到一些痛点,我想知道我是否应该走那条路.更不用说,我似乎无法找到任何权威文档(来自微软).如果你说我不应该使用它,你会建议什么途径?我正试图让一个新网站开始,但我想第一次就做好.

asp.net-mvc webgrid asp.net-mvc-3

28
推荐指数
3
解决办法
2万
查看次数

使用WebGrid.column中的HTML.ActionLink中的数据是不可能的?

我的ASP.NET MVC3测试应用程序中有以下WebGrid.它显示了一个客户列表:

@grid.GetHtml(
tableStyle: "grid",
headerStyle: "head",
alternatingRowStyle: "alt",
columns: grid.Columns
         (
         grid.Column(format: (item) => Html.ActionLink("Edit", "Details", new { id = item.id })),
         grid.Column("Address.CompanyName"),
         grid.Column("Address.City")
         )
)
Run Code Online (Sandbox Code Playgroud)

这里有趣的部分是我在第一列中添加的Edit-link.我想使用客户帐号而不是简单的"编辑"测试.但是,这给我带来了很多问题.

我试过了:

grid.Column(format: (item) => Html.ActionLink(item.AccountNumber.ToString(), "Details", new { id = item.id })),
Run Code Online (Sandbox Code Playgroud)

但是,似乎有一些我不明白这是如何工作的,因为我一直得到这个例外:

CS1502: The best overloaded method match for 'System.Web.Helpers.WebGrid.Column(string, string, System.Func<dynamic,object>, string, bool)' has some invalid arguments
Run Code Online (Sandbox Code Playgroud)

任何人都可以向我解释为什么这不起作用?"编辑"和item.AccountNumber.ToString()(除了拼写)有什么区别?

我应该注意到链接在使用"编辑" - 文本时起作用,这AccountNumber很长.

c# webgrid asp.net-mvc-3

19
推荐指数
2
解决办法
4万
查看次数

如何在mvc web网格中格式化日期

我有一个网格,我没有使用剃刀syntex.Rather我使用的是.aspx表单.代码如下;

<%
    var grid = new WebGrid(Model,defaultSort:"PublishDate",rowsPerPage:10);
    %>
    <%: 
       grid.GetHtml(
                          tableStyle: "wGrid",
                            headerStyle: "wGridHeader",
                    alternatingRowStyle: "alt",
                    columns: grid.Columns(
                    grid.Column("Title", canSort: false),
                    grid.Column("PublishDate", "Published on"),
                    grid.Column("CategoryName", "Category"),
                    grid.Column(format: (item) => Html.ActionLink("Details", "Browse", new { id = item.Title }))
                  )
               )
    %>
Run Code Online (Sandbox Code Playgroud)

现在我想将'PublishDate'列格式化为'dd-MMM-yyyy'.知道怎么做吗?

asp.net-mvc webgrid

17
推荐指数
3
解决办法
4万
查看次数

如何在WebGrid中禁用分页

我搜索了文档(http://msdn.microsoft.com/en-us/library/system.web.helpers.webgrid.webgrid(v=vs.111).aspx),发现"canPage:false" - 哪个不起作用.说没有名为'canPage'的参数.

其他网站称'autoSortAndPage:false'有效,但它对我没用.

码:

<div id="grid">
    @grid.Html(canPage: false,
      // the rest of my grid stuff
    );
</div>
Run Code Online (Sandbox Code Playgroud)

我该如何摆脱这种分页?

c# asp.net-mvc webgrid webmatrix razor

17
推荐指数
1
解决办法
9061
查看次数

ASP.NET MVC 3 WebGrid分页问题

我的数据访问层返回带有单页行数和总行数的集合.

遗憾的是,WebGrid组件不允许指定总行数或总页数(这些属性是只读的).

以前有人不得不处理这个问题吗?

c# asp.net-mvc webgrid asp.net-mvc-3

14
推荐指数
2
解决办法
2万
查看次数

在.NET 4.0中,WebGrid + Paging + Sorting + Filtering中的过滤器丢失了

我已经实现了一个WebGrid.排序,分页和过滤不能一起使用.它们在您单独使用时起作用.当您将三者结合使用时,过滤不起作用.

症状:
过滤结果集,然后排序.

要么

过滤结果集,然后转到下一页.

在这两种情况下,过滤器都会丢失.但它确实是页面和排序.

在后面的代码中:当通过排序或分页调用action方法时,为每个过滤器参数显示null.

通过过滤器调用操作方法时,过滤器参数会通过.

这告诉我,当你开始排序或分页时,它没有提交表单.

public ActionResult MyPage(int? page, int? rowsPerPage, 
              string sort, string sortdir, 
              string orderNumber, string person, string product)
Run Code Online (Sandbox Code Playgroud)

我在SO和其他地方环顾四周.有很多例子和人们会问如何做一个或另一个或全部三个.但我只看到一个与我的问题,所以我在这里发布.(他也没有解决)

我的页面实现如下:

@using (Ajax.BeginForm("MyPage", null, new AjaxOptions { InsertionMode = InsertionMode.Replace, UpdateTargetId = "myGrid" }, new { id = "filter" }))
{
    <div class="right">
        <select id="rowsPerPage" name="rowsPerPage">
            <option>15</option>
            <option>25</option>
            <option>50</option>
            <option>75</option>
            <option>100</option>
        </select>
    </div>  

    <div class="table">
        <div class="tableRow">
            <div class="tableCell">
                Order Number
            </div>
            <div class="tableCell">
                Person
            </div>
            <div class="tableCell">
                Product
            </div>
        </div>
        <div …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc webgrid asp.net-mvc-3

14
推荐指数
1
解决办法
2万
查看次数

asp.net mvc 3 webgrid排序仍然存在?sortdir = ASC

我在asp.net mvc中尝试了几个网格.微软在mvc 3的预发布中也知道了一个网格,所以我想我会试试那个.

基本功能很容易实现,但是当涉及到排序时,我遇到了一些问题.网格通过URL处理其排序.在url中,您可以通过以下方式获得排序列和排序方向:?sortdir = ASC&sort = ABONNEMENT

现在您可以期望在对某列进行排序后,该列上的sortdir查询字符串将更改为?sortdir = DESC但它不会.它保持?sortdir = ASC.有人知道这是一个错误还是一个功能,以及如何解决这个问题?

另一个非常恼人的事情:如果我点击一个排序链接,就会完成一个httpget请求.因此,我放松了我的模型.因为页面上有可能过滤网格(搜索功能),所以我想在模型中保留它.在我看来,将这些数据置于模型状态,而不是将其存储在会话状态中,这将是一个更容易和更清晰的解决方案.是否可以更改排序标题链接的行为,以便执行http帖子?

对此有何想法或想法?Tnx的帮助.

格雷茨,科恩

视图的代码如下:

<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">

<table>
    <tr>
        <td>
            <h1 class="normal">List of subscription</h1>
        </td>
        <td>

        </td>
    </tr>
</table>
<% using (Html.BeginForm("List", "Subscription", FormMethod.Post)) { %>

<table border="0" cellpadding="0" cellspacing="5">
    <tr>
        <td>
            Search By
        </td>
        <td>
            <%: Html.DropDownListFor(m => m.SearchByColumn, Ogone.FrontEnd.Web.Controllers.SubscriptionController.SubscriptionSearchList) %>
        </td>
        <td>
            <%: Html.TextBoxFor(m => m.SearchByText) %>
        </td>
        <td>
            <input name="button" type="submit" value="Search" />
        </td>
    </tr>
</table>

<div>
<%  
var grid = new System.Web.Helpers.WebGrid(Model.SubscriptionList, …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc webgrid

13
推荐指数
2
解决办法
9507
查看次数

如何在WebGrid中为列标题使用DisplayName数据注释?

我有一个Car类,我试图使用WebGrid助手在MVC 3视图中显示.下面是Car及其元数据类.

车类:

[MetadataType(typeof(CarMetadata))]
public partial class Car
{
    // car implementation
}
Run Code Online (Sandbox Code Playgroud)

汽车元数据类:

public class CarMetadata
{        
    [DisplayName("Car Name")]
    [StringLength(100, ErrorMessageResourceType = typeof(ValidationText), ErrorMessageResourceName="CarNameDescriptionLength")]
    [Required]
    public string CarName { get; set; }    
}
Run Code Online (Sandbox Code Playgroud)

查看内容:

@model List<Car>
...
var grid = new WebGrid(Model, canPage: true, rowsPerPage: 10);
grid.Pager(WebGridPagerModes.NextPrevious);

@grid.GetHtml(
    htmlAttributes: new { id = "grid" },
    columns: grid.Columns(
        grid.Column("CarName", ?????)
    ));
Run Code Online (Sandbox Code Playgroud)

目标:我想弄清楚如何使用DisplayName数据注释作为WebGrid(?????)中的列标题文本.有谁知道这是如何实现的?

提前致谢!

asp.net webgrid data-annotations asp.net-mvc-3

13
推荐指数
1
解决办法
6413
查看次数

MVC 3 Webgrid - 你如何隐藏你不想看到的列?

我有一个webgrid,有一个列我想只对某些用户可见.目前我已按如下方式编码网格

if (Context.User.IsInRole(Role.Inputter) || Context.User.IsInRole(Role.Administrator))
{
    @grid.GetHtml(columns: grid.Columns(
        grid.Column(format: (item) => Html.ActionLink("Select", "Details", new { contractId = item.ContractId })),
        grid.Column(format: (item) => Html.ActionLink("Edit", "Edit", new { contractId = item.ContractId })),
        grid.Column("SignOffDate", "Sign Off Date",
            format: @<text> <span>@item.SignOffDate.ToString("d/M/yyyy")</span></text>),
        grid.Column("FullContractNumber", "Contract Number"),
        grid.Column("ContractTitle", "Title")
    ));
}
else
{ 
    @grid.GetHtml(columns: grid.Columns(
        grid.Column(format: (item) => Html.ActionLink("Select", "Details", new { contractId = item.ContractId })),
        grid.Column("SignOffDate", "Sign Off Date",
            format: @<text> <span>@item.SignOffDate.ToString("d/M/yyyy")</span></text>),
        grid.Column("FullContractNumber", "Contract Number"),
        grid.Column("ContractTitle", "Title")
    ));
}
Run Code Online (Sandbox Code Playgroud)

但是肯定有更好的方法而不重复所有代码?2列输入之间的唯一区别是我想显示特定用户的编辑链接.那么这样做的最佳替代方式是什么?

asp.net-mvc webgrid show-hide razor

13
推荐指数
1
解决办法
2万
查看次数