2012-02-14 19 views
0

2行目のヘッダー行を表示するために必要なasp:GridViewがあります。月曜日、火曜日などの最初の日と、 'と' Overtime '。asp:HTMLを使用した複数のヘッダー行を持つGridView

グリッドビュー_RowDataBoundにコードを動的に追加することでこれを行いました。問題は、ページが再ロード/ポストバックしたときに追加した行が崩壊し、GridViewでも使用されていたjavascript関数が呼び出されなくなりました。 。これは時々起こるようですが、理由はわかりません。

ページは基本的にタイムシートの入力フォームです。ユーザーはdatepickerから日付を選択します(ページが再ロードされ、これはいつか狂ったように見えます)。次のコードを使用して

enter image description here

これは私のグリッドは、今のように見えるものである

   Table tbl = e.Row.Parent as Table; 
      var row = new GridViewRow(0, 0, DataControlRowType.Header, DataControlRowState.Normal); 

      TableCell cell = new TableCell(); 
      cell.Text = ""; 
      cell.ColumnSpan = 3; 
      row.Cells.Add(cell); 

      cell = new TableCell(); 
      cell.Text = "Monday"; 
      cell.ColumnSpan = 2; 
      cell.HorizontalAlign = HorizontalAlign.Center; 
      row.Cells.Add(cell); 

      cell = new TableCell(); 
      cell.Text = "Tuesday"; 
      cell.ColumnSpan = 2; 
      cell.HorizontalAlign = HorizontalAlign.Center; 
      row.Cells.Add(cell); 

      cell = new TableCell(); 
      cell.Text = "Wednesday"; 
      cell.ColumnSpan = 2; 
      cell.HorizontalAlign = HorizontalAlign.Center; 
      row.Cells.Add(cell); 

      cell = new TableCell(); 
      cell.Text = "Thursday"; 
      cell.ColumnSpan = 2; 
      cell.HorizontalAlign = HorizontalAlign.Center; 
      row.Cells.Add(cell); 

      cell = new TableCell(); 
      cell.Text = "Friday"; 
      cell.ColumnSpan = 2; 
      cell.HorizontalAlign = HorizontalAlign.Center; 
      row.Cells.Add(cell); 

      cell = new TableCell(); 
      cell.Text = "Saturday"; 
      cell.ColumnSpan = 2; 
      cell.HorizontalAlign = HorizontalAlign.Center; 
      row.Cells.Add(cell); 

      cell = new TableCell(); 
      cell.Text = "Sunday"; 
      cell.ColumnSpan = 2; 
      cell.HorizontalAlign = HorizontalAlign.Center; 
      row.Cells.Add(cell); 

      cell = new TableCell(); 
      cell.Text = ""; 
      cell.ColumnSpan = 2; 
      row.Cells.Add(cell); 

      tbl.Rows.AddAt(tbl.Rows.Count - 1, row); 

しかし、私はグリッドを得ることができ、とにかくありますかどうかは知りたいのですがコードビハインドではなく、HTMLでそのように見える画像は、グリッドを何か他のものよりも壊しているようだからです。

おかげ

(私は 'ノーマル'/'OT' ヘッダー行が使用してHTMLに設定されていることを追加する必要があります:

<asp:TemplateField HeaderText="OT" HeaderStyle-HorizontalAlign="Center"> 
+0

ListViewは、3.0+を使用できると仮定した場合、より良い選択です – ScottE

答えて

0

をあなたの<EditItemTemplate>タグで、次の操作を行うことができます。

<EditItemTemplate> 

<table> 
    <tr> 
     <td colspan=2>Monday</td > 
     <td colspan=2>Tuesday</td > 
     <td colspan=2>Wednesday</td > 
     <td colspan=2>Thursday</td > 
     <td colspan=2>Friday</td > 
     <td colspan=2>Saturday</td > 
     <td colspan=2>Sunday</td > 
    </tr> 

    <tr> 
     <td>Normal</td> 
     <td>OT</td> 
     <td>Normal</td> 
     <td>OT</td> 

     ... 
     ... 
     ... 
    </tr> 

    <tr> 
     <TD><asp:Textbox ID="txtBox1" runat="server"/></TD> 
     <TD><asp:Textbox ID="txtBox2" runat="server"/></TD> 
     <TD><asp:Textbox ID="txtBox3" runat="server"/></TD> 
     <TD><asp:Textbox ID="txtBox4" runat="server"/></TD> 

     ... 
     ... 
     ... 

    </tr> 
</table> 

</EditItemTemplate> 

あなたは

...(ドットドット)で、それの残りの部分を記入することができます

希望するもの:

+0

ありがとう、それは間違いなく機能を正しく取得するためのより良い解決策です。ルック・アンド・フィールは待たなければならないでしょう。 – Melanie

関連する問題