Я пытаюсь добавить общий итог в нижний колонтитул gridview, но я получаю следующие ошибки.
Введенная строка была в неправильном формате.
В этом строка, в которой происходит ошибка.
totalAmount += Convert.ToInt32(DataBinder.Eval(e.Row.DataItem,"Salary"));
Вот код html.
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
BackColor="LightGoldenrodYellow" BorderColor="Tan" BorderWidth="1px" OnRowDataBound="GridView1_RowDataBound" ShowFooter="True" >
<AlternatingRowStyle BackColor="PaleGoldenrod" />
<Columns>
<asp:TemplateField HeaderText="First_Name">
<EditItemTemplate>
<asp:Label ID="First_Name" runat="server" Text='<%# Eval("First_Name")%>'></asp:Label>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Bind("First_Name")%>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Last_Name">
<EditItemTemplate>
<asp:TextBox ID="Last_Name" runat="server" Text='<%# Bind("Last_Name")%>' Width="100px"></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="Label2" runat="server" Text='<%# Bind("Last_Name")%>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Title">
<EditItemTemplate>
<asp:Label ID="First_Name" runat="server" Text='<%# Eval("Title")%>'></asp:Label>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Bind("Title")%>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Location">
<EditItemTemplate>
<asp:TextBox ID="Last_Name" runat="server" Text='<%# Bind("Location")%>' Width="100px"></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="Label2" runat="server" Text='<%# Bind("Location")%>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Type Contract">
<EditItemTemplate>
<asp:Label ID="First_Name" runat="server" Text='<%# Eval("Type_Contract")%>'></asp:Label>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Bind("Type_Contract")%>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Salary">
<EditItemTemplate>
<asp:TextBox ID="Last_Name" runat="server" Text='<%# Bind("Salary")%>' Width="100px"></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="Label2" runat="server" Text='<%# Bind("Salary")%>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
Вот код, лежащий в основе.
public partial class TotalPaymnet : System.Web.UI.Page
{
int totalAmount = 0;
protected void Page_Load(object sender, EventArgs e)
{
JobHandler jh = new JobHandler();
GridView1.DataSource = jh.GetStudentJobRecord();
GridView1.DataBind();
}
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
totalAmount += Convert.ToInt32(DataBinder.Eval(e.Row.DataItem,"Salary"));
}
// Display totals in the gridview footer
else if (e.Row.RowType == DataControlRowType.Footer)
{
e.Row.Cells[1].Text = "Grand Total";
e.Row.Cells[1].Font.Bold = true;
e.Row.Cells[5].Text = totalAmount.ToString();
e.Row.Cells[5].Font.Bold = true;
}
}
}
}
Вот код Результат при запуске приложений.