2012-07-31 13 views
11

Asp.net Uygulamamda, GridView var ve ben arkada kodu kullanarak column[6] verisini oluşturuyorum.GridView'ın Altbilgisinde Toplamı Görüntüleme ve ayrıca son Sütun sütunlarını (satır boşluğu) ekle Son Sütun

Aşağıdaki koda bakarak, gridview benim footer var. ve sorun, altbilgi kullanırsam sütun [6] için yazmam görünmüyor. Altyazı kodunu silersem, [6] sütununa ait yazı görünür. sorun nedir? Her iki kod da togather kullanamaz mı? ben zaten = "True"

protected void Page_Load(object sender, EventArgs e) 
{ 
    for (int i = 0; i < (this.GridView1.Rows.Count); i++) 
    { 
     this.GridView1.Rows[i].Cells[6].Text = "testing"; 
     //GridView1.Columns[1].FooterText ="footer 1"; 
    } 
} 

.aspx

<asp:GridView ID="GridView1" runat="server" DataSourceID="SqlDataSource1" 
      AutoGenerateColumns="False" DataKeyNames="ID" CellPadding="4" 
      ForeColor="#333333" GridLines="None" ShowFooter="True" 
        onrowdatabound="GridView1_RowDataBound"> 
      <RowStyle BackColor="#EFF3FB" /> 
      <Columns> 
       <asp:BoundField DataField="reportDate" HeaderText="Report Date" dataformatstring="{0:dd MMMM yyyy}" SortExpression="reportDate" /> 
       <asp:BoundField DataField="sponsorBonus" HeaderText="Sponsor Bonus" dataformatstring="{0:0.00}" SortExpression="sponsorBonus" HtmlEncode="False" /> 
       <asp:BoundField DataField="pairingBonus" HeaderText="Pairing Bonus" HtmlEncode="False" SortExpression="pairingBonus" dataformatstring="{0:c}" />          
       <asp:BoundField DataField="staticBonus" HeaderText="Static Bonus" SortExpression="staticBonus" /> 
       <asp:BoundField DataField="leftBonus" HeaderText="Left Bonus" SortExpression="leftBonus" /> 
       <asp:BoundField DataField="rightBonus" HeaderText="Right Bonus" SortExpression="rightBonus" /> 
       <asp:BoundField HeaderText="Total" SortExpression="total" > 
       <ItemStyle Width="100px" /> 
       </asp:BoundField> 
      </Columns> 
      <FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" /> 
      <PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" /> 
      <SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" /> 
      <HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" /> 
      <EditRowStyle BackColor="#2461BF" /> 
      <AlternatingRowStyle BackColor="White" />    
     </asp:GridView> 
+0

Altbilgi metin ayarlamak istediğiniz dinamik ?? –

+0

aslında altbilgi, sütunun toplamıdır. Yukarıdaki kod sadece bir örnektir, ancak aynı soruna neden olurlar – melvintcs

+0

Cevabımı kontrol ettiniz mi? –

cevap

16

Örnek Kod ShowFooter ayarlayın:

 decimal sumFooterValue = 0; 
    protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) 
    { 

     if (e.Row.RowType == DataControlRowType.DataRow) 
     { 
     string sponsorBonus = ((Label)e.Row.FindControl("Label2")).Text; 
     string pairingBonus = ((Label)e.Row.FindControl("Label3")).Text; 
     string staticBonus = ((Label)e.Row.FindControl("Label4")).Text; 
     string leftBonus = ((Label)e.Row.FindControl("Label5")).Text; 
     string rightBonus = ((Label)e.Row.FindControl("Label6")).Text; 
     decimal totalvalue = Convert.ToDecimal(sponsorBonus) + Convert.ToDecimal(pairingBonus) + Convert.ToDecimal(staticBonus) + Convert.ToDecimal(leftBonus) + Convert.ToDecimal(rightBonus); 
     e.Row.Cells[6].Text = totalvalue.ToString(); 
     sumFooterValue += totalvalue 
     } 

    if (e.Row.RowType == DataControlRowType.Footer) 
     { 
      Label lbl = (Label)e.Row.FindControl("lblTotal"); 
      lbl.Text = sumFooterValue.ToString(); 
     } 

    } 
: programlama yoluyla

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) 
    { 
     if (e.Row.RowType == DataControlRowType.Footer) 
     { 
     Label lbl = (Label)e.Row.FindControl("lblTotal"); 
     lbl.Text = grdTotal.ToString("c"); 
     } 
    } 

GÜNCELLEME KODU Alt Bilgi Metni ayarlamak için 0 .aspx Sayfası olarak

<asp:GridView ID="GridView1" runat="server" DataSourceID="SqlDataSource1" 
     AutoGenerateColumns="False" DataKeyNames="ID" CellPadding="4" 
     ForeColor="#333333" GridLines="None" ShowFooter="True" 
       onrowdatabound="GridView1_RowDataBound"> 
     <RowStyle BackColor="#EFF3FB" /> 
     <Columns> 
      <asp:TemplateField HeaderText="Report Date" SortExpression="reportDate"> 
       <EditItemTemplate> 
        <asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("reportDate") %>'></asp:TextBox> 
       </EditItemTemplate> 
       <ItemTemplate> 
        <asp:Label ID="Label1" runat="server" 
         Text='<%# Bind("reportDate", "{0:dd MMMM yyyy}") %>'></asp:Label> 
       </ItemTemplate> 
      </asp:TemplateField> 
      <asp:TemplateField HeaderText="Sponsor Bonus" SortExpression="sponsorBonus"> 
       <EditItemTemplate> 
        <asp:TextBox ID="TextBox2" runat="server" Text='<%# Bind("sponsorBonus") %>'></asp:TextBox> 
       </EditItemTemplate> 
       <ItemTemplate> 
        <asp:Label ID="Label2" runat="server" 
         Text='<%# Bind("sponsorBonus", "{0:0.00}") %>'></asp:Label> 
       </ItemTemplate> 
      </asp:TemplateField> 
      <asp:TemplateField HeaderText="Pairing Bonus" SortExpression="pairingBonus"> 
       <EditItemTemplate> 
        <asp:TextBox ID="TextBox3" runat="server" Text='<%# Bind("pairingBonus") %>'></asp:TextBox> 
       </EditItemTemplate> 
       <ItemTemplate> 
        <asp:Label ID="Label3" runat="server" 
         Text='<%# Bind("pairingBonus", "{0:c}") %>'></asp:Label> 
       </ItemTemplate> 
      </asp:TemplateField> 
      <asp:TemplateField HeaderText="Static Bonus" SortExpression="staticBonus"> 
       <EditItemTemplate> 
        <asp:TextBox ID="TextBox4" runat="server" Text='<%# Bind("staticBonus") %>'></asp:TextBox> 
       </EditItemTemplate> 
       <ItemTemplate> 
        <asp:Label ID="Label4" runat="server" Text='<%# Bind("staticBonus") %>'></asp:Label> 
       </ItemTemplate> 
      </asp:TemplateField> 
      <asp:TemplateField HeaderText="Left Bonus" SortExpression="leftBonus"> 
       <EditItemTemplate> 
        <asp:TextBox ID="TextBox5" runat="server" Text='<%# Bind("leftBonus") %>'></asp:TextBox> 
       </EditItemTemplate> 
       <ItemTemplate> 
        <asp:Label ID="Label5" runat="server" Text='<%# Bind("leftBonus") %>'></asp:Label> 
       </ItemTemplate> 
      </asp:TemplateField> 
      <asp:TemplateField HeaderText="Right Bonus" SortExpression="rightBonus"> 
       <EditItemTemplate> 
        <asp:TextBox ID="TextBox6" runat="server" Text='<%# Bind("rightBonus") %>'></asp:TextBox> 
       </EditItemTemplate> 
       <ItemTemplate> 
        <asp:Label ID="Label6" runat="server" Text='<%# Bind("rightBonus") %>'></asp:Label> 
       </ItemTemplate> 
      </asp:TemplateField> 
      <asp:TemplateField HeaderText="Total" SortExpression="total"> 
       <EditItemTemplate> 
        <asp:TextBox ID="TextBox7" runat="server"></asp:TextBox> 
       </EditItemTemplate> 
       <FooterTemplate> 
        <asp:Label ID="lbltotal" runat="server" Text="Label"></asp:Label> 
       </FooterTemplate> 
       <ItemTemplate> 
        <asp:Label ID="Label7" runat="server"></asp:Label> 
       </ItemTemplate> 
       <ItemStyle Width="100px" /> 

      </asp:TemplateField> 
     </Columns> 
     <FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" /> 
     <PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" /> 
     <SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" /> 
     <HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" /> 
     <EditRowStyle BackColor="#2461BF" /> 
     <AlternatingRowStyle BackColor="White" />    
    </asp:GridView> 

Blogum - Bu gruplaşma ile LINQ yoluyla elde edilebilir Asp.net Gridview Article

+0

Hata: GridView, 'FooterTemplate' adlı bir ortak özelliğe sahip değil. – melvintcs

+0

@melvintcs: Footertemplate onların kuyruğudur .aspx kaynak kodunu gönderebilir –

+0

güncellemem var, lütfen soruyu kontrol edin – melvintcs

0

, öğelerin burada liste gerçek tablo görünümüne veri kaynağı olarak işaret etti. Fiili kodlamaya yardımcı olabilecek örnek kod.

var tabelDetails =(from li in dc.My_table 
    join m in dc.Table_One on li.ID equals m.ID 
    join c in dc.Table_two on li.OtherID equals c.ID 
    where //Condition 
group new { m, li, c } by new 
{ 
    m.ID, 
    m.Name 
} into g 
select new 
{ 
    g.Key.ID, 
    Name = g.Key.FullName, 
    sponsorBonus= g.Where(s => s.c.Name == "sponsorBonus").Count(), 
    pairingBonus = g.Where(s => s.c.Name == "pairingBonus").Count(), 
    staticBonus = g.Where(s => s.c.Name == "staticBonus").Count(), 
    leftBonus = g.Where(s => s.c.Name == "leftBonus").Count(), 
    rightBonus = g.Where(s => s.c.Name == "rightBonus").Count(), 
    Total = g.Count() //Row wise Total 
}).OrderBy(t => t.Name).ToList(); 

tabelDetails.Insert(tabelDetails.Count(), new //This data will be the last row of the grid 
{ 
    Name = "Total", //Column wise total 
    sponsorBonus = tabelDetails.Sum(s => s.sponsorBonus), 
    pairingBonus = tabelDetails.Sum(s => s.pairingBonus), 
    staticBonus = tabelDetails.Sum(s => s.staticBonus), 
    leftBonus = tabelDetails.Sum(s => s.leftBonus), 
    rightBonus = tabelDetails.Sum(s => s.rightBonus), 
    Total = tabelDetails.Sum(s => s.Total) 
});