2013-02-07 20 views
1

我在使用相同模型的單個視圖上有2個WebGrid。現在的問題是,每當我在單個webgrid上應用排序時,它也正在排序另一個webgrid。我正在使用fieldNamePrefix仍然有問題。這裏是我的代碼:單個視圖上的多個WebGrid更新任何操作上的所有WebGrid

1日管窺:

<%@ 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")) 
     )) 
    %> 

第二部分景觀:

<%@ 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")) 
     )) 
    %> 
+0

你爲什麼不創建單獨的文件,使它們的部分看法?您可以從單一視圖頁面調用這些部分視圖。在您的視圖中使用'@ Html.Partial(「_ par1」,Model)'在'

'標記中渲染它們。 –

+0

@Karthik我爲兩個部分視圖創建了單獨的文件,但都使用相同的模型。 – Dhwani

回答

2

在webgrid中有屬性名爲「ajaxUpdateContainerId」。這個屬性可以幫助你解決你的問題。

1日局部視圖

<%@ 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> 

第二部分景觀

<%@ 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> 
+0

我曾嘗試過你的建議,但仍面臨同樣的問題。我在運行時看到過源代碼,我的div的id和htmlattribute id對於所有的partialview都是一樣的,儘管我已經改變了它。 – Dhwani

+0

我已經解決了。清除瀏覽器緩存後。我認爲這是維護舊的緩存,所以給了我錯誤的輸出。感謝您的幫助。 – Dhwani

1

你可能不應該在兩個格柵使用相同的變量名稱。嘗試var gridA和var gridB。

+0

對不起,但仍然面臨同樣的問題。 – Dhwani