2015-07-10 85 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 –