我有一个从数据查询动态生成的表数组,并存储在会话变量中。现在我想添加一个文本框来限制我将显示的行数。为了测试这个,我编写了两个按钮方法,一个将设置某些行为visible = false,第二个按钮方法将相同的行设置为visible = true。
protected void limit_btn_Click(object sender, EventArgs e)
{
for (int i = 0; i < traceTables.Length; i++)
for (int j = 2; j < traceTables[i].Rows.Count; j++)
traceTables[i].Rows[j].Visible = false;
Session["Tables"] = traceTables;
table_C();
}//end limit_btn_Click()
protected void obo_btn_Click(object sender, EventArgs e)
{
for (int i = 0; i < traceTables.Length; i++)
for (int j = 2; j < traceTables[i].Rows.Count; j++)
traceTables[i].Rows[j].Visible = true;
Session["Tables"] = traceTables;
table_C();
}//end obo_btn_Click()
protected void table_C()
{
String changeTo = log_locations.SelectedValue;
for (int i = 0; i < sshLoc.Length; i++)
{
if (sshLoc[i].CompareTo(changeTo) == 0)
{
table_panel.ContentTemplateContainer.Controls.Remove(traceTables[currentTable]);
System.Diagnostics.Debug.WriteLine("Removing " + sshLoc[currentTable]);
table_panel.ContentTemplateContainer.Controls.Add(traceTables[i]);
System.Diagnostics.Debug.WriteLine("Adding " + sshLoc[i]);
currentTable = i;
Session["CurrentTable"] = currentTable;
break;
}//end if
}//end for
}//end table_C()
table_C()基本上从面板中删除并添加表 - 当我想在下拉列表中切换表时(我的工作)使用它,在这种情况下,它只是从面板内容中删除并添加相同的表容器
问题是将行设置为不可见可以正常工作。将行设置回可见永远不会,我不知道为什么
答案 0 :(得分:1)
尝试在ASP中使用display:none和display:visible而不是.visible traceTables [I] .Rows [j]的。新增( “风格”, “显示:无”);
Visible将其从HTML中完全删除,因此您只能通过重新创建页面再次显示它。
答案 1 :(得分:0)
您需要将数据存储在列表中而不是表中。
当您将行设置为不可见时,它们将从html表中删除。这就是为什么你不能再将它们设置为可见的原因。
如果您将数据存储在单独的对象中并将其绑定到列表,则可以打开和关闭可见性。