2015-07-10 104 views
0

我正在使用HtmlButton來製作一些隱藏可見的HtmlTableRows。該HtmlButton創建和設置像這樣:如何防止我的隱藏HtmlTableRows頁面提交後再次隱藏?

HtmlButton btnAddFoapalRow = null; 
. . . 
btnAddFoapalRow = new HtmlButton(); 
btnAddFoapalRow.Attributes["type"] = "button"; 
btnAddFoapalRow.InnerHtml = "+"; 
btnAddFoapalRow.ID = "btnAddFoapalRow"; 
this.Controls.Add(btnAddFoapalRow); 

我然後創建HtmlTableCells編程,添加到動態創建的HtmlTableRows這些細胞,然後將HtmlTableRows添加到HTMLTABLE。

行3和4開始關閉壽命蒲式耳下隱藏(所謂):

foapalrow3.Style["display"] = "none"; 
. . . 
foapalrow4.Style["display"] = "none"; 

上述情況發生的服務器端/ C#;我對btnAddFoapalRow的jQuery中點擊響應使下隱藏的行,只要有一,取消隱藏/可見:

/* This makes the next hidden row visible, as long as there is one */ 
$(document).on("click", '[id$=btnAddFoapalRow]', function (e) { 
    $('[id$=foapalhtmltable]').find('tr:hidden:first').show(); 
}); 

這工作格雷斯雨衣。問題是,當我提交表單時,HtmlTable將恢復爲僅顯示其最初的兩行(標題行和一個數據行);通過單擊btnAddFoapalRow「再次隱形」(顯然恢復爲「display:none」),添加了一兩個額外的數據行。如果我重新點擊btnAddFoapalRow,行重新出現,輸入的數據仍然完好無損 - 所以它們還沒有真正被86'd,他們只是害羞 - 但我怎樣才能防止這些行摺疊/隱藏在所有?

+0

您需要在服務器(或至少本地瀏覽器存儲器)上保留*任何* UI更改以使其在刷新頁面時保持不變。 –

回答

1

與@TrueBlueAussie在評論中說的一樣,你需要知道表單已被提交的事實通過頁面加載持續存在。

您可以在服務器端以某種方式處理(也許是數據庫更新),或者使其更簡單,您可以使用JavaScript創建一個cookie。

+0

總是選擇更簡單的路線,我正在探索cookie選項;在哪裏會/應該讀取Cookie - 在$(window).load()中? –

+0

我在這裏問了一個相關的問題:http://stackoverflow.com/questions/31392190/why-is-my-ready-function-not-reached –