c# - 单个 View 上的多个 WebGrid 更新任何操作上的所有 WebGrid

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

我在单个 View 上有 2 个 WebGrid,它们使用相同的模型。现在的问题是,每当我在单个网络网格上应用排序时,它也会对另一个网络网格进行排序。我使用 fieldNamePrefix 仍然有问题。这是我的代码:

第一个部分 View :

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<IEnumerable<CRMEvent.Models.CRM.DatabaseEntities.CRM_Dashboard_Requests>>" %>
<%    
     var grid = new WebGrid(source: Model, defaultSort: "CRM_ID",fieldNamePrefix:"grid2", canSort: true);%>
<%=
        grid.GetHtml( htmlAttributes: new { id = "grid2" },tableStyle: "GridTable", headerStyle: "GridHeader", columns: grid.Columns(
          grid.Column(columnName: "CRM_ID", header: "CRM ID", canSort: true),
         grid.Column(columnName: "MDLNO", header: "MDLNO", canSort: true),
         grid.Column(columnName: "EMP_Name", header: "Employee", canSort: true),
         grid.Column(columnName: "SERVICE_TYPE", header: "Service Type", canSort: true),
         grid.Column(columnName: "Requested_Amount", header: "Amount", canSort: true),
                 grid.Column(columnName: "Created_Date", header: "Date", canSort: true, format: item => item.Created_Date.ToString("dd-MM-yyyy"))
         ))
   %>

第二部分 View :

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<IEnumerable<ApricaCRMEvent.Models.CRM.DatabaseEntities.CRM_Dashboard_Requests>>" %>
 <%    
     var grid = new WebGrid(source: Model, defaultSort: "CRM_ID",fieldNamePrefix:"grid1", canSort: true);%>
     <%=
        grid.GetHtml( htmlAttributes: new { id = "grid1" },tableStyle: "GridTable", headerStyle: "GridHeader", columns: grid.Columns(
          grid.Column(columnName: "CRM_ID", header: "CRM ID", canSort: true),
         grid.Column(columnName: "MDLNO", header: "MDLNO", canSort: true),
         grid.Column(columnName: "EMP_Name", header: "Employee", canSort: true),
         grid.Column(columnName: "SERVICE_TYPE", header: "Service Type", canSort: true),
         grid.Column(columnName: "Requested_Amount", header: "Amount", canSort: true),
                 grid.Column(columnName: "Created_Date", header: "Date", canSort: true, format: item => item.Created_Date.ToString("dd-MM-yyyy"))
         ))
   %>

最佳答案

webgrid 中有名为“ajaxUpdateContainerId”的属性。此属性可以帮助您解决问题。

第一个部分 View

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<IEnumerable<CRMEvent.Models.CRM.DatabaseEntities.CRM_Dashboard_Requests>>" %>
<%    
 var grid1 = new WebGrid(source: Model, defaultSort: "CRM_ID",fieldNamePrefix:"grid2", canSort: true, ajaxUpdateContainerId:"FirstDiv");%>
<div id="FirstDiv">
<%=
    grid1.GetHtml( htmlAttributes: new { id = "grid2" },tableStyle: "GridTable", headerStyle: "GridHeader", columns: grid.Columns(
      grid1.Column(columnName: "CRM_ID", header: "CRM ID", canSort: true),
     grid1.Column(columnName: "MDLNO", header: "MDLNO", canSort: true),
     grid1.Column(columnName: "EMP_Name", header: "Employee", canSort: true),
     grid1.Column(columnName: "SERVICE_TYPE", header: "Service Type", canSort: true),
     grid1.Column(columnName: "Requested_Amount", header: "Amount", canSort: true),
             grid1.Column(columnName: "Created_Date", header: "Date", canSort: true, format: item => item.Created_Date.ToString("dd-MM-yyyy"))
     ))
%>
</div>

第二部分 View

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<IEnumerable<ApricaCRMEvent.Models.CRM.DatabaseEntities.CRM_Dashboard_Requests>>" %>
 <%    
 var grid = new WebGrid(source: Model, defaultSort: "CRM_ID",fieldNamePrefix:"grid1", canSort: true, ajaxUpdateContainerId:"SecondDiv");%>
 <div id="SecondDiv">
<%=
    grid.GetHtml( htmlAttributes: new { id = "grid1" },tableStyle: "GridTable", headerStyle: "GridHeader", columns: grid.Columns(
      grid.Column(columnName: "CRM_ID", header: "CRM ID", canSort: true),
     grid.Column(columnName: "MDLNO", header: "MDLNO", canSort: true),
     grid.Column(columnName: "EMP_Name", header: "Employee", canSort: true),
     grid.Column(columnName: "SERVICE_TYPE", header: "Service Type", canSort: true),
     grid.Column(columnName: "Requested_Amount", header: "Amount", canSort: true),
             grid.Column(columnName: "Created_Date", header: "Date", canSort: true, format: item => item.Created_Date.ToString("dd-MM-yyyy"))
     ))
  %>
  </div>

关于c# - 单个 View 上的多个 WebGrid 更新任何操作上的所有 WebGrid,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14746328/

相关文章:

c# - 如何用逗号加8位分隔字符串

c# - 出于软件保护目的,将保护试用信息存储在何处

c# - ContainsKey 为字符串返回 false

c# - 使用 Visual Studio 内置的 ASP.NET MVC 模板

asp.net-mvc-3 - 跨域的SignalR

asp.net-mvc - 使用 WebGrid 或不使用 WebGrid...答案是什么?

sorting - 如何将默认排序顺序更改为降序?

c# - formcollection 应该在 asp.net mvc GET 请求上为空

jquery - 在 MVC 中将 Json Datetime 分配给 TextBoxFor 时格式错误

c# - MVC3 中的 WebGrid 列格式问题