2016-04-01 39 views
3

Bir GRIDVIEW ve ilk sütununda bir ikinci sıra oluşturmak için bir tablo eklendi:Bir gridview'de ilk sütuna bir rowspan nasıl eklenir?

enter image description here

I gönderenin adresi GRIDVIEW tüm sütunda da istiyoruz.

Kodu:

<asp:GridView CssClass="printTableResults" runat="server" ID="gvHawb" 
            ShowHeaderWhenEmpty="false" 
            DataKeyField="ID" 
            OnRowDataBound="gvHawb_RowDataBound" 
            AutoGenerateColumns="false" 
            allowpaging="false"> 
            <HeaderStyle CssClass="printTableHeader" /> 
            <RowStyle CssClass="borderB" /> 
            <Columns> 
             <asp:TemplateField HeaderText="HAWB" HeaderStyle-Font-Bold="true" ItemStyle-HorizontalAlign="Center"> 
              <ItemTemplate> 
               <table> 
                <tr> 
                 <td><asp:Label ID="lblAwbNumber" runat="server" Text='<%# Eval("AWBNumber") %>'></asp:Label></td> 
                </tr> 
                <tr> 
                 <td><label>Shipper</label></td> 
                 <td><asp:Label ID="lblFullShipperAddress" runat="server" Text='<%# Eval("FullShipperAddress") %>'></asp:Label></td> 
                </tr> 
               </table> 
              </ItemTemplate> 
             </asp:TemplateField> 
             <asp:TemplateField HeaderText="Pieces" HeaderStyle-Font-Bold="true" ItemStyle-HorizontalAlign="Center"> 
              <ItemTemplate> 
               <asp:Label ID="lblPieces" runat="server" Text='<%# Eval("TotalNoOfPieces") %>'></asp:Label> 
              </ItemTemplate> 
             </asp:TemplateField> 
           </Columns>     
          </asp:GridView> 

nakliyeci yayılma GRIDVIEW satırları yapmak için bir yolu var mı? Bu kılavuz görünümünde toplam 8 sütun var.

cevap

3

Tabloyu, gönderici adresiyle dış tablonun son sütununun ItemTemplate numarasına taşıyabilirsiniz. Ardından masayı kendi tr'a koyun. Böyle bir şey: Eğer dış tablo oluşturma o katacak çünkü bir </tr> biten bitirmek olmamalı

<ItemTemplate> 

    <asp:Label ID="lblPieces" runat="server" Text='<%# Eval("TotalNoOfPieces") %>'></asp:Label> 

    </tr>     <!-- end the outer table row --> 
    <tr colspan="7">  <!-- start new row in the outer table --> 
     <table> 
      <tr> 
       <td><asp:Label ID="lblAwbNumber" runat="server" Text='<%# Eval("AWBNumber") %>'></asp:Label></td> 
      </tr> 
      <tr> 
       <td><label>Shipper</label></td> 
       <td><asp:Label ID="lblFullShipperAddress" runat="server" Text='<%# Eval("FullShipperAddress")%>'></asp:Label></td> 
      </tr> 
     </table> 

</ItemTemplate> 

Not.

Bu cevap herhangi bir gerçek test olmaksızın bir araya getirildi, böylece "kutudan çıkacak" şekilde çalışacağını garanti etmiyorum.

+0

teşekkürler bu çalıştı – user123456789

0

ilk hücre sırasının 8 sütun span istiyorsanız, GridView PreRender olay bu işleyicisi ekleyebilirsiniz:

void gvHawb_PreRender(object sender, EventArgs e) 
{ 
    foreach (GridViewRow row in gvHawb.Rows) 
    { 
     if (/* some condition */) 
     { 
      // Remove the other cells of the row 
      while (row.Cells.Count > 1) 
      { 
       row.Cells.RemoveAt(1); 
      } 

      // Set the ColumnSpan attribute 
      row.Cells[0].ColumnSpan = 8; 
     } 
    } 
} 

bunu karşılamak satırlarda bitmiş olacaktır varsaymak özel bir durum.

Ayrıca GridView'den daha kolay özelleştirilebilen bir ListView kullanmayı da düşünebilirsiniz.

+0

Diğer hücrelerin kaldırılmasını istemiyorum Sadece adresin 8 sütun boyunca yayılmasını istiyorum, ancak yine de tüm diğer bilgileri görmem gerekiyor. Eğer 'while' kodunu kaldırırsam gridview'i dağıtır. – user123456789