2011-01-18 10 views
2

私は、データクエリから動的に生成され、セッション変数に格納されたテーブル配列を持っています。今私は表示する時間にいくつの行を制限するテキストボックスを追加したいと思います。これをテストするために、2つのボタンメソッドを記述しました.1つは、visible = falseになるようにいくつかの行を設定し、2つ目のボタンメソッドは同じ行をvisible = trueに戻します。テーブル行の可視性を変更するASP.netの問題

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()は基本的に削除し、パネルからのテーブルが追加されます - 私は(作品)ドロップダウンリストからテーブルを切り替えたいとき、私はそれを使用し、この場合には、それは単に削除され、同じテーブルを追加しますパネルコンテンツコンテナから取得します。

問題は、表示されないように行を設定するとうまく機能しないことです。行を可視に戻すことは決してできません。理由は分かりません

答えて

1

ASP:traceTables [i] .Rows [j] .Add( "style"、 "display:none");でdisplay:noneとdisplay:visibleを使用してみてください。

VisibleはHTMLから完全に削除するため、ページを再作成するだけで再表示できます。

0

テーブルではなくリストにデータを格納する必要があります。

行を表示しないように設定すると、html表から行が削除されます。そのため、それらを再度表示することはできません。

データを別のオブジェクトに格納してリストにバインドすると、可視性のオンとオフを切り替えることができます。

関連する問題