shin_yal

New Member


- Em có 1 GridView , 2 cái nút bấm link trong GridView . 1 cái tên là Select để khi click nó thì cái dòng mình muốn chọn nó được chọn và được phủ màu , 1 cái tên là Edit để click nó thì thay đổi nội dung của các cột trong dòng đó . Thì bình thường tất cả người muốn Edit nội dung của dòng thì click luôn vào Edit và sửa lại nội dung các cột của dòng .


- Nhưng bây giờ chẳng hạn lại có 1 người không biết về CNTT hay là khi họ click vào nút Select ( thì cái dòng mà họ click được phủ màu ) và họ đang phân vân không biết là nên làm gì với dữ liệu đó , rồi bất chợt họ click luôn vào nút Edit thì lúc này cái DropDownList không được đổ dữ liệu vào cho nên sẽ không thấy được cái gì trong DropDownList để mà chọn và sửa cả . Bởi vì sự kiện click vào nút bấm Select , sau đó click luôn vào nút bấm Edit thì nó khác sự kiện khi mình click luôn vào nút Edit và sửa luôn thì dữ liệu được đưa luôn vào DropDownList qua sự kiện OnRowDataBound và em viết cách xử lý nó như thế này :

Code: protected void grvUser_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowState == DataControlRowState.Edit || (e.Row.RowState == (DataControlRowState.Edit | DataControlRowState.Alternate)))
{
SqlConnection ketnoi = new SqlConnection(dl);
string SELECT_CC = @"SELECT * FROM [dbo].[LIST_USER] GROUP BY Role";
SqlCommand lenh = new SqlCommand(SELECT_CC, ketnoi);
SqlDataAdapter list = new SqlDataAdapter(lenh);
DataTable dt = new DataTable();
list.Fill(dt);

DropDownList drdList = (DropDownList)(e.Row.FindControl("DropDownList2"));
drdList.DataSource = dt;
drdList.DataTextField = "Role";
drdList.DataBind();
}

if (e.Row.RowType == DataControlRowType.Footer)
{
SqlConnection ketnoi = new SqlConnection(dl);
string SELECT_CC = @"SELECT * FROM [dbo].[LIST_USER] GROUP BY Role";
SqlCommand lenh = new SqlCommand(SELECT_CC, ketnoi);
SqlDataAdapter list = new SqlDataAdapter(lenh);
DataTable dt = new DataTable();
list.Fill(dt);
DropDownList ddl = (DropDownList)e.Row.FindControl("DropDownList3");
ddl.DataSource = dt;
ddl.DataTextField = "Role";
ddl.DataBind();
}
} - Đó là cách viết khi ta click luôn vào nút Edit và sửa luôn thì dữ liệu được đưa vào DropDownList trước khi ta click vào nút Edit . Cho nên khi click nút Edit thì DropDownList vừa có dữ liệu rồi . Bây giờ vấn đề là làm thế nào để đưa dữ liệu vào DropDownList khi ta click vào cái nút Select , rồi click tiếp vào nút Edit . Mà ở đây em làm sửa và xóa ngay trong GridView không dùng đến SQLDataSource và LinQDataSource. Cái Textbox thì không vấn đề gì nhưng cái DropDownList thì bị như vậy .

- Diễn đạt thì như vậy nhưng em gửi kèm cả ảnh để tất cả người giúp đỡ


+ Đầu tiên khi ta click luôn vào nút Edit thì dữ liệu vừa được đổ sẵn trước rồi nên DropDownList sẽ có dữ liệu để ta chọn mà sửa






+ Tiếp theo ta click vào nút Select như dưới này :





+ Ngay sau đó ta lại click tiếp vào nút Edit thì có lỗi xảy ra :





- Mọi người giúp đỡ em với , Thank
 
Các chủ đề có liên quan khác

Các chủ đề có liên quan khác

Top