2012-07-31 6 views
11

में कॉलम का योग (पंक्ति vise) भी जोड़ें मेरे एएसपीनेट ऐप में, मेरे पास GridView है और मैं पीछे कोड का उपयोग करके column[6] का डेटा उत्पन्न करता हूं।ग्रिड व्यू के फूटर में कुल प्रदर्शित करना और अंतिम कॉलम

नीचे दिए गए कोड को देखकर, मेरे पास के लिए footer है। और समस्या है कॉलम के लिए मेरा पाठ [6] दिखाई नहीं देगा अगर मैं पाद लेख का उपयोग करता हूं। यदि मैं फ़ूटरटेक्स्ट कोड हटाता हूं, तो कॉलम [6] के लिए मेरा टेक्स्ट दिखाई देता है। समस्या क्या है? दोनों कोड togather का उपयोग नहीं कर सकते हैं? मैं पहले से ही ShowFooter सेट = "सही"

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

क्या आप पाद लेख पाठ गतिशीलता चाहते हैं ?? –

+0

वास्तव में पाद लेख कॉलम का कुल योग है। उपरोक्त कोड सिर्फ उदाहरण है, लेकिन वे एक ही समस्या का कारण बनते हैं – melvintcs

+0

क्या आपने मेरा उत्तर चेक किया है? –

उत्तर

16

नमूना कोड: प्रोग्राम के

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"); 
     } 
    } 

UPDATED पाद पाठ सेट करने के लिए कोड:

 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(); 
     } 

    } 

.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: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> 

मेरा ब्लॉग - Asp.net Gridview Article

+0

त्रुटि: ग्रिड व्यू में 'FooterTemplate' नामक सार्वजनिक संपत्ति नहीं है। – melvintcs

+0

@melvintcs: Footertemplate उनका है, ठीक है क्या आप अपना ग्रिडव्यू पोस्ट कर सकते हैं .aspx स्रोत कोड –

+0

अपडेट किया गया है, कृपया मेरा प्रश्न देखें – melvintcs

0

इस समूह के साथ LINQ के माध्यम से प्राप्त किया जा सकता है, यहाँ मदों की एक सूची वास्तविक ग्रिड दृश्य में डेटा स्रोत के रूप इशारा किया। नमूना छद्म कोड जो वास्तविक कोडिंग में मदद कर सकता है।

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) 
}); 
संबंधित मुद्दे