2012-10-30 26 views
0

頁面之間的檢查我都工作正常的WebGrid不是住

@{ 
        var DB = Database.Open("CHAVI"); 
        var grid = new WebGrid(DB.Query("SELECT [FileTrackingTag], FileID FROM (SELECT [FileTrackingTag], FileID, ROW_NUMBER() OVER (PARTITION BY [FileTrackingTag] ORDER BY FileID) rn FROM [dbo].[MasterSequence]) t WHERE rn=1 ORDER BY [FileTrackingTag]")); 
        @grid.GetHtml(
         tableStyle: "webgrid", 
         columns: grid.Columns(
          grid.Column(header: "Assign? ", style: "labelcolumn", 
            format: 
             @<text><input class="check-box" id="assignChkBx" name="assignChkBx" type="checkbox" value="@item.FileTrackingTag" /></text>), 
          grid.Column("FileTrackingTag", "FileTrackingTag") 
          ) 
        ) 
       } 

然而,當我檢查了多個盒子,當我不同的選項卡之間去上的WebGrid一個的WebGrid,只有當前選項卡上的人就被送進了(它仍然是相同的網頁,它只是通過webgrid的條目跳轉)

是否有解決方案來保持它們之間的webgrid選項卡?

+0

您可能需要考慮使用類似signalR的內容來在不同瀏覽器之間同步以查看同一頁面。 – nieve

+0

這是一個頁面,我循環瀏覽WebGrid的內容 – Badmiral

+1

我編輯了你的標題。請參閱:「[應該在其標題中包含」標籤「](http://meta.stackexchange.com/questions/19190/)」,其中的共識是「不,他們不應該」。 –

回答

1

我不知道任何內置的方式來完成你在說什麼。 WebGrid分頁僅通過選擇需要在給定時間顯示的數據來工作。如果您查看爲網頁生成的HTML,您將看到只有「當前」項目在那裏。

由於其他頁面的數據甚至不在您的網頁中,因此MVC無法知道它們。您最好的選擇是在您的控制器上創建一個動作,並在網格更改頁面時發佈當前項目。您可以將這些張貼的項目存儲在一些臨時存儲中(緩存,TempData等)。然後,當用戶點擊保存時,您需要保存發佈到您的保存方法的項目和臨時存儲集合中的項目。

在完成這條路線之前,我會仔細檢查最終用戶,確保它們是他們真正想要和期望的。正確實施需要大量的工作,並且當您更新在屏幕上實際看不到的記錄時,可能會得出一些結論。其他選項是禁用分頁並使用不同的控件,或者使用某種類型的嚮導流程來清楚說明您要在每個「頁面」之後保存結果。