adameh_bahal
شنبه 09 اسفند 1393, 19:33 عصر
با سلام
من یه دیتاگریدویو دارم که وقتی رو هدر سطراش کلیک بشه اطلاعات اون سطر رو توی تکست باکس ها میریزه و بعد کاربر اطلاعات رو ویرایش میکنه و روی دکمه ادیت کلیک میکنه ولی بعد ادیت فقط همون سطر ادیت شده میمونه و اگه یه سطر دیگه ویرایش بشه اطلاعات سطر ویرایش شده قبلی به مقدار اولش برمیگرده و همیشه فقط یه سطر هست که اطلاعاتش ویرایش شده
این کد دکمه ادیت هست:
var nationalCode = txtSearchNationalCode.Text;
var loan =
_db.loans.FirstOrDefault(
c => c.personnel.p_national_code == nationalCode);
try
{
if(loan !=null)
{
loan.l_date = pdlDate.GregorianDate;
loan.l_value =Convert.ToDecimal(txtValue.Value.Trim());
loan.personnel.p_national_code =txtSearchNationalCode.Text.Trim();
_db.SaveChanges();
MessageBox.Show(Resources.OperationSucceeded);
Utilities.ResetAllControls(groupBox1);
var pc =newPersianCalendar();
var ncode = txtSearchNationalCode.Text;
var loans = _db.loans.Where(c => c.personnel.p_national_code == ncode);
var result = loans.ToList().Select(l =>newLoanGrid
{
l_id = l.l_id,
p_national_code = l.personnel.p_national_code,
p_personnel_num = l.personnel.p_personnel_num,
l_date =
string.Format("{0}/{1}/{2}", pc.GetYear(l.l_date),
pc.GetMonth(l.l_date).ToString(CultureInfo.Invaria ntCulture).Length<2
?"0"+ pc.GetMonth(l.l_date)
: pc.GetMonth(l.l_date).ToString(CultureInfo.Invaria ntCulture),
pc.GetDayOfMonth(l.l_date).ToString(CultureInfo.In variantCulture).Length<2
?"0"+ pc.GetDayOfMonth(l.l_date)
: pc.GetDayOfMonth(l.l_date).ToString(CultureInfo.In variantCulture)),
l_value = l.l_value
}).ToList();
dataGridView1.DataSource= result;
}
else
{
groupBox1.Visible=false;
MessageBox.Show(Resources.NoRecordsFound);
}
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
}
کلا اگه روش ساده تر وب هتری هم برای ویرایش وجود داره ممنون میشم معرفی کنید
من یه دیتاگریدویو دارم که وقتی رو هدر سطراش کلیک بشه اطلاعات اون سطر رو توی تکست باکس ها میریزه و بعد کاربر اطلاعات رو ویرایش میکنه و روی دکمه ادیت کلیک میکنه ولی بعد ادیت فقط همون سطر ادیت شده میمونه و اگه یه سطر دیگه ویرایش بشه اطلاعات سطر ویرایش شده قبلی به مقدار اولش برمیگرده و همیشه فقط یه سطر هست که اطلاعاتش ویرایش شده
این کد دکمه ادیت هست:
var nationalCode = txtSearchNationalCode.Text;
var loan =
_db.loans.FirstOrDefault(
c => c.personnel.p_national_code == nationalCode);
try
{
if(loan !=null)
{
loan.l_date = pdlDate.GregorianDate;
loan.l_value =Convert.ToDecimal(txtValue.Value.Trim());
loan.personnel.p_national_code =txtSearchNationalCode.Text.Trim();
_db.SaveChanges();
MessageBox.Show(Resources.OperationSucceeded);
Utilities.ResetAllControls(groupBox1);
var pc =newPersianCalendar();
var ncode = txtSearchNationalCode.Text;
var loans = _db.loans.Where(c => c.personnel.p_national_code == ncode);
var result = loans.ToList().Select(l =>newLoanGrid
{
l_id = l.l_id,
p_national_code = l.personnel.p_national_code,
p_personnel_num = l.personnel.p_personnel_num,
l_date =
string.Format("{0}/{1}/{2}", pc.GetYear(l.l_date),
pc.GetMonth(l.l_date).ToString(CultureInfo.Invaria ntCulture).Length<2
?"0"+ pc.GetMonth(l.l_date)
: pc.GetMonth(l.l_date).ToString(CultureInfo.Invaria ntCulture),
pc.GetDayOfMonth(l.l_date).ToString(CultureInfo.In variantCulture).Length<2
?"0"+ pc.GetDayOfMonth(l.l_date)
: pc.GetDayOfMonth(l.l_date).ToString(CultureInfo.In variantCulture)),
l_value = l.l_value
}).ToList();
dataGridView1.DataSource= result;
}
else
{
groupBox1.Visible=false;
MessageBox.Show(Resources.NoRecordsFound);
}
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
}
کلا اگه روش ساده تر وب هتری هم برای ویرایش وجود داره ممنون میشم معرفی کنید