protected void grdParcel_RowUpdating(object sender, GridViewUpdateEventArgs e) { //find objects //Parcel parcel = DataSource[e.RowIndex]; var accountManager = new AccountManager(this); var txtEffectedDate = (grdParcel.Rows[e.RowIndex].FindControl("txtEffectedDate") as Date); var txtDueDate = (grdParcel.Rows[e.RowIndex].FindControl("txtGrdDueDate") as Date); var ucCurrFieldEffectedAmount = (grdParcel.Rows[e.RowIndex].FindControl("txtEffectedAmount") as CurrencyField); var txtIdentificationNumber = (grdParcel.Rows[e.RowIndex].FindControl("txtIdentificationNumber") as TextBox); var ddlCboAccountName = (grdParcel.Rows[e.RowIndex].FindControl("cboAccountName") as DropDownList); var ddlcboPaymentMethod = (grdParcel.Rows[e.RowIndex].FindControl("cboPaymentMethod") as DropDownList); var lblAmount = (grdParcel.Rows[e.RowIndex].FindControl("lblAmount") as Label); if (DataSource[e.RowIndex].ParcelId != 0) { // Update Mode, there is an object attached DataSource[e.RowIndex].Account = null; DataSource[e.RowIndex].PaymentMethod = null; DataSource[e.RowIndex].FinancierOperation = null; if (!String.IsNullOrEmpty(ddlCboAccountName.SelectedValue)) DataSource[e.RowIndex].Account = accountManager.GetAccount(Convert.ToInt32(ddlCboAccountName.SelectedValue), Page.Company.CompanyId); if (!String.IsNullOrEmpty(ddlcboPaymentMethod.SelectedValue)) { DataSource[e.RowIndex].PaymentMethod = accountManager.GetPaymentMethod(Convert.ToInt32(ddlcboPaymentMethod.SelectedValue)); if (Convert.ToInt32(ddlcboPaymentMethod.SelectedValue) == PaymentMethod.Boleto) { var financierOperation = accountManager.GetFinancierOperationBoleto(Page.Company.CompanyId); if (financierOperation != null) DataSource[e.RowIndex].FinancierOperation = financierOperation; } } } else { // Insert mode, so there is no object Attached DataSource[e.RowIndex].AccountId = null; DataSource[e.RowIndex].PaymentMethodId = null; DataSource[e.RowIndex].IdentificationNumber = String.Empty; if (!String.IsNullOrEmpty(ddlCboAccountName.SelectedValue)) DataSource[e.RowIndex].AccountId = accountManager.GetAccount(Convert.ToInt32(ddlCboAccountName.SelectedValue), Page.Company.CompanyId).AccountId; if (!String.IsNullOrEmpty(ddlcboPaymentMethod.SelectedValue)) { DataSource[e.RowIndex].PaymentMethodId = Convert.ToInt32(ddlcboPaymentMethod.SelectedValue); if (Convert.ToInt32(ddlcboPaymentMethod.SelectedValue) == PaymentMethod.Boleto) { var financierOperation = accountManager.GetFinancierOperationBoleto(Page.Company.CompanyId); if (financierOperation != null) DataSource[e.RowIndex].FinancierOperationId = financierOperation.FinancierOperationId; } } } if (!String.IsNullOrEmpty(txtIdentificationNumber.Text)) DataSource[e.RowIndex].IdentificationNumber = txtIdentificationNumber.Text; DataSource[e.RowIndex].EffectedAmount = Convert.ToDecimal(ucCurrFieldEffectedAmount.CurrencyValue); DataSource[e.RowIndex].Amount = Convert.ToDecimal(lblAmount.Text.Remove(0, 3)); DataSource[e.RowIndex].DueDate = txtDueDate.DateTime.Value; DataSource[e.RowIndex].EffectedDate = txtEffectedDate.DateTime; if (txtEffectedDate.DateTime.HasValue) { if (txtEffectedDate.DateTime.Value < DateTime.MinValue.Sql2005MinValue() || txtEffectedDate.DateTime.Value > DateTime.Now) { Page.ShowError(Exception.DateBiggerThanCurrentDate); e.Cancel = true; return; } } if (txtEffectedDate.DateTime.HasValue && ucCurrFieldEffectedAmount.CurrencyValue == 0) { Page.ShowError("Parcela não pode ser quitada com valor 0(zero)!"); e.Cancel = true; return; } BindGrid(-1); }