I have set condition that when ever txttotalday is empty then gridview row absent get empty if some value input give message
below code
protected void OnCalculate(object sender, EventArgs e)
{
TextBox absent = sender as TextBox;
GridViewRow row = absent.NamingContainer as GridViewRow;
Label present = row.FindControl("txtpresent") as Label;
Label gsalary = row.FindControl("EMP_Salary") as Label;
Label lbLoan = row.FindControl("Loan") as Label;
Label lbAdvance = row.FindControl("Advance") as Label;
Label lbMobile = row.FindControl("Mobile") as Label;
Label lbConveyance = row.FindControl("Conveyance") as Label;
Label lbMedical = row.FindControl("Medical") as Label;
Label lbfood = row.FindControl("Food") as Label;
Label nsalary = row.FindControl("txtsalary") as Label;
Label lbOT = row.FindControl("emp_OT") as Label;
TextBox txthours = row.FindControl("txthour") as TextBox;
Label lbOT_Amount = row.FindControl("lbOT_Amount") as Label;
Calculate(txttotalday, present, absent, gsalary, nsalary, lbAdvance, lbLoan,lbMobile, lbMedical, lbfood, lbConveyance, lbOT, txthours, lbOT_Amount);
DataTable dt = (DataTable)ViewState["dt"];
dt.Rows[row.RowIndex]["txtpresent"] = Convert.ToDecimal(present.Text.Trim());
dt.Rows[row.RowIndex]["txtabsent"] = Convert.ToDecimal(absent.Text.Trim());
dt.Rows[row.RowIndex]["txtsalary"] = nsalary.Text.Trim();
dt.Rows[row.RowIndex]["Food"] = lbfood.Text.Trim();
// dt.Rows[row.RowIndex]["lballowance"] = allowance.Text.Trim();
dt.Rows[row.RowIndex]["emp_OT"] = Convert.ToDecimal(lbOT.Text.Trim());
dt.Rows[row.RowIndex]["txthour"] = Convert.ToDecimal(txthours.Text.Trim());
dt.Rows[row.RowIndex]["lbOT_Amount"] = lbOT_Amount.Text.Trim();
ViewState["dt"] = dt;
}
private void Calculate(TextBox total, Label present, TextBox absent, Label gsalary, Label nsalary, Label lbAdvance, Label lbLoan,Label lbMobile,Label lbMedical,Label lbfood, Label lbConveyance, Label lbOT, TextBox txthours, Label lbOT_Amount)
{
if (txttotalday.Text == "" )
{
Response.Write("<script language='javascript'>alert('please input total days');</script>");
}
else
{
lbOT_Amount.Text = (Convert.ToDecimal(txthours.Text) * Convert.ToDecimal(lbOT.Text)).ToString();
present.Text = (Convert.ToDecimal(txttotalday.Text) - Convert.ToDecimal(absent.Text)).ToString();
nsalary.Text = ((Convert.ToDecimal(gsalary.Text) / Convert.ToDecimal(total.Text) * Convert.ToDecimal(present.Text) + Convert.ToDecimal(lbOT_Amount.Text) + Convert.ToDecimal(lbMobile.Text) + Convert.ToDecimal(lbMedical.Text) + Convert.ToDecimal(lbfood.Text) + Convert.ToDecimal(lbConveyance.Text) - Convert.ToDecimal(lbLoan.Text) - Convert.ToDecimal(lbAdvance.Text)).ToString());
nsalary.Text = Math.Round(double.Parse(nsalary.Text), 0).ToString();
}
}