سلام استاد خسته نباشید
زمانی که کلید ویرایش رو میزنیم فرم ادیت باز میشه و مشخصات قبلی در text ها و جود دارد و با تغییر آنها اطلاعات هم در گرید ویو وهم در دیتا بیس تغییر میکند.
استاد پروژه من مربوط به مسابقات ورزشیه واینکه مشخص میکنه چه مسابقه های درحال برگزاریه و تاریخ و .................
کد پشت فرم ادیت
public partial class frmEditPerson : Form
{
Sport_Db_Context _Context = new Sport_Db_Context();
private int _personId;
public frmEditPerson(int PersonId)
{
_personId = PersonId;
InitializeComponent();
}
private void frmEditPerson_Load(object sender, EventArgs e)
{
var person = _Context.People.Single(p => p.Id == _personId);
if (person.Name == "مدیر")
{
FarsiMessageBox.MessageBox.Show("توجه", "امکان ویرایش مدیر وجود ندارد!", FarsiMessageBox.MessageBox.Buttons.OK, FarsiMessageBox.MessageBox.Icons.Warning);
DialogResult = DialogResult.Cancel;
}
else
{
txtName.Text = person.Name;
txtFamily.Text = person.Family;
txtEmail.Text = person.Email;
txtMobile.Text = person.Mobile;
rbDavar.Checked = true;
if (person.isPlayer)
{
rbPlayer.Checked = true;
}
}
}
private void btnEdit_Click(object sender, EventArgs e)
{
var person =_Context.People.Single(p=>p.Id == _personId);
person.Name = txtName.Text;
person.Family = txtFamily.Text;
person.Email = txtEmail.Text;
person.Mobile = txtMobile.Text;
person.isPlayer = true;
if (rbDavar.Checked == true)
{
person.isPlayer = false;
}
_Context.SaveChanges();
DialogResult = DialogResult.OK;
}
private void button2_Click(object sender, EventArgs e)
{
DialogResult = DialogResult.Cancel;
}
}کد پشت لیست اصلی
private void btnEdit_Click(object sender, EventArgs e)
{
if (dataGridView1.CurrentRow!= null)
{
string personId = dataGridView1.CurrentRow.Cells[0].Value.ToString();
int PersonId = Convert.ToInt32(personId);
frmEditPerson frmEdit = new frmEditPerson(PersonId);
var result = frmEdit.ShowDialog();
if (result == DialogResult.OK)
{
//cmbFilterTypeUser.SelectedIndex = -1;
BindGrid(cmbFilterTypeUser.SelectedIndex);
}
}
}استاد یه قابلیت فیلتر اشخاص رو هم با کمبو باکس قرار دادم و bindGrid یک ورودی میگرد و براساس آن فیلتر رو انجام میده
کد bindGrid
void BindGrid(int filterType)
{
List<Person> peoples = _context.People.ToList();
if (filterType == -1)
{
peoples = _context.People.ToList();
}
else if (filterType == 0)
{
peoples = _context.People.Where(p => p.isPlayer == true).ToList();
}
else if (filterType == 1)
{
peoples = _context.People.Where(p => p.isPlayer == false).ToList();
}
var data = peoples;
dataGridView1.Rows.Clear();
foreach (var p in data)
{
string Type = "";
if (p.isPlayer)
{
Type = "بازیکن";
}
else
{
Type = "داور";
}
dataGridView1.Rows.Add(p.Id,
p.Name,
p.Family,
p.Mobile,
p.Email,
Type,
p.CreateDate/*.ConvertToShamsi()*/);
}
}

بسیار عالی