tu dong load datatgrildview

Các bài hướng dẫn và các bài trả lời được chọn lọc.

Ban Điều Hành: qanlh_soft, dieucay555

tu dong load datatgrildview

Post levien07 20-07-2010, 10:43

Em dùng C#
Em có 2 from1 và form2
Trong đó form1 em có DataGridview1 , em đã load csdl lên đó.
Form 2 Em có các textbox để nhập thông tin thêm mới.
Em muốn sau khi nhấn nút hoàn thành ở form2 thì DataGridview1 load lại thông tin vừa nhập vào mà không cần nhấn nút reload nào. Xin các bác chỉ giúp
levien07
Members
 
Bài viết: 23
Tham gia: 24-06-2010, 10:35

Re: tu dong load datatgrildview

Post 123pro 20-07-2010, 20:21

levien07 wrote:Em dùng C#
Em có 2 from1 và form2
Trong đó form1 em có DataGridview1 , em đã load csdl lên đó.
Form 2 Em có các textbox để nhập thông tin thêm mới.
Em muốn sau khi nhấn nút hoàn thành ở form2 thì DataGridview1 load lại thông tin vừa nhập vào mà không cần nhấn nút reload nào. Xin các bác chỉ giúp


Bạn tìm hiểu thêm về Delegate nhé! sử dụng google để hỗ trợ :ym_big_grin:
You know you do
You do , you know
I can do it
Hình đại diện
123pro
Moderators
 
Bài viết: 33
Tham gia: 08-11-2009, 18:13

Re: tu dong load datatgrildview

Post Fami526 20-07-2010, 22:19

Có 2 trường hợp:

1. Nếu bạn muốn up thông tin trực tiếp từ form 2 vào grid mà không cần thông qua CSDL thì bạn dùng Event + Delegate
Tạo event ở form2, bắt event đó ở form1, và dùng delegate ở form1 để update grid.

2. Nếu bạn muốn up thông tin từ form 2 vào CSDL, sau đó mới reload lại form1. Sau khi nhấn nút hoàn thành ở form2, bạn update vào CSDL, sau đó sử dụng event để gọi hàm reload trong form1 (như dùng event ở cách 1).

Theo ý của mình là như vậy, ko biết bạn đang nói về trường hợp nào?
Fami526
Members
 
Bài viết: 9
Tham gia: 23-12-2009, 13:44

Re: tu dong load datatgrildview

Post cogai_dentuhomqua18 25-07-2010, 23:24

levien07 wrote:Em dùng C#
Em có 2 from1 và form2
Trong đó form1 em có DataGridview1 , em đã load csdl lên đó.
Form 2 Em có các textbox để nhập thông tin thêm mới.
Em muốn sau khi nhấn nút hoàn thành ở form2 thì DataGridview1 load lại thông tin vừa nhập vào mà không cần nhấn nút reload nào. Xin các bác chỉ giúp

Mình có 1 bài ví dụ tương tự như vấn đề của bạn, nhưng không kết nối csdl.
Form 1:
Hình ảnh
Khi click vào button Thêm thì sẽ hiển thị Form 2:
http://img442.imageshack.us/img442/8874/form2.png
Sau khi nhập dữ liệu vào form 2, click chấp nhận thì dữ liệu sẽ update lên form 1.
Code Form 1:
namespace DanhSachThiSinh
{
public partial class frmMain : Form
{
frmThemTS frmThem;
private bool show = false;
public frmMain()
{
InitializeComponent();
this.ShowInTaskbar = true;
}

private void btnThoat_Click(object sender, EventArgs e)
{
DialogResult result = MessageBox.Show("Ban muon thoat chuong trinh?", "Thoat", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
if (result == DialogResult.Yes)
Application.Exit();
else
return;
}

private void btnThem_Click(object sender, EventArgs e)
{
frmThem = new frmThemTS(this); //goi Form 2
show = true;
frmThem.Show();
}

}
}

Code Form 2:
namespace DanhSachThiSinh
{
public partial class frmThemTS : Form
{
private bool accept1;
private bool accept2;
frmMain frm;
public frmThemTS()
{
InitializeComponent();

}
public frmThemTS(frmMain frm_main)
{
InitializeComponent();
frm = new frmMain();
frm = frm_main;
this.ShowInTaskbar = true;
frm.ShowInTaskbar = false;

}
private void btnThoat2_Click(object sender, EventArgs e)
{
this.Close();
}

private void rdbChuyen_CheckedChanged(object sender, EventArgs e)
{
txtDiemCSDL.Enabled = false;
txtDiemTA.Enabled = true;
accept1 = true;
accept2 = false;
}

private void rdbSieuCup_CheckedChanged(object sender, EventArgs e)
{
txtDiemTA.Enabled = false;
txtDiemCSDL.Enabled = true;
accept1 = false;
accept2 = true;
}

private void btnChapNhan_Click(object sender, EventArgs e)
{

if (accept1 == true && accept2 == false)
{
if (txtSBD.Text != "" && txtHoTen.Text != "" && txtDiem1.Text != "" && txtDiem2.Text != "" && txtDiem3.Text != "" && txtDiemTA.Text != "")
{
ThiSinh ts = new ThiSinh(txtSBD.Text, txtHoTen.Text, float.Parse(txtDiem1.Text),
float.Parse(txtDiem2.Text), float.Parse(txtDiem3.Text), float.Parse(txtDiemTA.Text));
Chuyen chuyen = new Chuyen(float.Parse(txtDiemTA.Text));
ListViewItem lv = new ListViewItem(ts.SBD);
lv.SubItems.Add(ts.HOTEN);
lv.SubItems.Add(Convert.ToString(ts.BAI1));
lv.SubItems.Add(Convert.ToString(ts.BAI2));
lv.SubItems.Add(Convert.ToString(ts.BAI3));
lv.SubItems.Add(Convert.ToString(chuyen.DIEMTA));
lv.SubItems.Add(Convert.ToString(ts.Tong_Diem()));
frm.listView1.Items.Add(lv);
// nếu dùng csdl mình nghĩ bạn sẽ gọi hàm insert ở đây
}
else if (txtSBD.Text == "" || txtHoTen.Text == "" || txtDiem1.Text == "" || txtDiem2.Text == "" || txtDiem3.Text == "" || txtDiemTA.Text == "")
{
MessageBox.Show("Ban phai nhap day du thong tin!!!", "Loi!!!", MessageBoxButtons.OK, MessageBoxIcon.Error);
}

}
else if (accept2 == true && accept1 == false)
{
if (txtSBD.Text != "" && txtHoTen.Text != "" && txtDiem1.Text != "" && txtDiem2.Text != "" && txtDiem3.Text != "" && txtDiemCSDL.Text != "")
{
ThiSinh ts = new ThiSinh(txtSBD.Text, txtHoTen.Text, float.Parse(txtDiem1.Text),
float.Parse(txtDiem2.Text), float.Parse(txtDiem3.Text), float.Parse(txtDiemCSDL.Text));
SieuCup sc = new SieuCup(float.Parse(txtDiemCSDL.Text));
ListViewItem lv = new ListViewItem(ts.SBD);
lv.SubItems.Add(ts.HOTEN);
lv.SubItems.Add(Convert.ToString(ts.BAI1));
lv.SubItems.Add(Convert.ToString(ts.BAI2));
lv.SubItems.Add(Convert.ToString(ts.BAI3));
lv.SubItems.Add(Convert.ToString(sc.CSDL));
lv.SubItems.Add(Convert.ToString(ts.Tong_Diem()));
frm.listView2.Items.Add(lv);
}
else if (txtSBD.Text == "" || txtHoTen.Text == "" || txtDiem1.Text == "" || txtDiem2.Text == "" || txtDiem3.Text == "" || txtDiemCSDL.Text == "")
{
MessageBox.Show("Ban phai nhap day du thong tin!!!", "Loi!!!", MessageBoxButtons.OK, MessageBoxIcon.Error);
}

}
}
}
}
Hi vọng ví dụ này có ích cho bạn
cogai_dentuhomqua18
Members
 
Bài viết: 16
Tham gia: 04-12-2009, 15:47

Re: tu dong load datatgrildview

Post star05051990 26-07-2010, 18:58

Ở cuối hàm thực hiện tác vụ khi nhấn nút hoàn tất bạn gọi lại hàm:
MainForm_Load(object sender, EventArgs e);
Try for myself
Hình đại diện
star05051990
Moderators
 
Bài viết: 186
Tham gia: 02-08-2009, 09:19
Nơi ở: Thành phố Hồ Chí Minh

Re: tu dong load datatgrildview

Post levien07 27-07-2010, 09:47

minh` lam` duoc. rui`...ko can` phải dai` dong` chi? can` dung` timer tai? du lieu len datagrildview 1s 1 lan` la` duoc....cam? on tat' ca? nhung~ y' kien' dong' gop' bo? ich' cua? moi nguoi`
:vbb_biggrin:
levien07
Members
 
Bài viết: 23
Tham gia: 24-06-2010, 10:35

Re: tu dong load datatgrildview

Post qanlh_soft 27-07-2010, 15:36

levien07 wrote:minh` lam` duoc. rui`...ko can` phải dai` dong` chi? can` dung` timer tai? du lieu len datagrildview 1s 1 lan` la` duoc....cam? on tat' ca? nhung~ y' kien' dong' gop' bo? ich' cua? moi nguoi`
:vbb_biggrin:

Load dữ liệu 1s 1 lần? Dữ liệu lớn thì chết sặc tiết. :ym_shame_on_you:
Chỉ khi nào có thay đổi j đó mới load lại.
Có thể load lại dữ liệu từ db hoặc khi đã lưu xuống db rồi thì add thêm 1 row vào grid, lấy các dữ liệu đã lưu từ form nhập insert vào row mới ấy.
"Phần mềm giống như s.e.x : nó sẽ thú vị hơn nếu miễn phí" - Linus Torvalds
Hình đại diện
qanlh_soft
Global Moderators
 
Bài viết: 477
Tham gia: 03-06-2008, 08:47

Re: tu dong load datatgrildview

Post DarkWizard 30-07-2010, 22:55

qanlh_soft wrote:
levien07 wrote:minh` lam` duoc. rui`...ko can` phải dai` dong` chi? can` dung` timer tai? du lieu len datagrildview 1s 1 lan` la` duoc....cam? on tat' ca? nhung~ y' kien' dong' gop' bo? ich' cua? moi nguoi`
:vbb_biggrin:

Load dữ liệu 1s 1 lần? Dữ liệu lớn thì chết sặc tiết. :ym_shame_on_you:
Chỉ khi nào có thay đổi j đó mới load lại.
Có thể load lại dữ liệu từ db hoặc khi đã lưu xuống db rồi thì add thêm 1 row vào grid, lấy các dữ liệu đã lưu từ form nhập insert vào row mới ấy.

Chả cần lớn cũng đủ sặc mà :))

Link Gốc :  View and Download
Hình đại diện
DarkWizard
Moderators
 
Bài viết: 279
Tham gia: 02-08-2009, 15:37


Trở về Hỏi đáp C#

Ai đang truy cập

Đang xem diễn đàn này: 0 thành viên và 2 khách