10/10/2018, 10:53

làm thế nào để lấy tên cột trong gridview

các bác cho em hỏi.
trong asp.net dùng c# .net

trong cái sự kiện
protected void dg_RowDeleting(object sender, GridViewDeleteEventArgs e)

mà em muốn lấy lại tên cái cột thứ hai trong cái bàng dữ liệu hiển thị trên trang web thì phải làm thế nào.
mục đích của em là em muốn lấy tên một cột bất kì trong bảng dl (giả sử nó tên là "msnsx")
sau đó em viết câu lệnh sql để delete cái hàng đó.
em mới biết cách để lấy giá trị trong hàng thứ i ở cột thứ hai.
muốn lấy thêm tên cột mà ko đựoc. em có thử mấy cách nhưng toàn thất bại.
tương tự em muốn viết câu lệnh update dl khi có sự kiện
protected void dg_RowUpdating(object sender, GridViewDeleteEventArgs e)

phải làm sao bây giờ hả các bác.
hay có cách khác để làm ko. giả sử ơ đây là một bẳng dl bất kì các bác nhé
nó lấy được từ câu lệnh sql : select * from tenbang;

các bác cố giúp em với
watashi_wabn viết 12:54 ngày 10/10/2018
nếu bạn muốn xóa hay cập nhật thì bạn chỉ cần bik index của cột đó thui, đâu cần tên
VD nhe:
protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
string id = GridView1.Rows[e.RowIndex].Cells[1].Text;
.....
}
anhchanghaudau viết 12:58 ngày 10/10/2018
Được gửi bởi harunaga
các bác cho em hỏi.
trong asp.net dùng c# .net

trong cái sự kiện
protected void dg_RowDeleting(object sender, GridViewDeleteEventArgs e)

mà em muốn lấy lại tên cái cột thứ hai trong cái bàng dữ liệu hiển thị trên trang web thì phải làm thế nào.
mục đích của em là em muốn lấy tên một cột bất kì trong bảng dl (giả sử nó tên là "msnsx")
sau đó em viết câu lệnh sql để delete cái hàng đó.
em mới biết cách để lấy giá trị trong hàng thứ i ở cột thứ hai.
muốn lấy thêm tên cột mà ko đựoc. em có thử mấy cách nhưng toàn thất bại.
tương tự em muốn viết câu lệnh update dl khi có sự kiện
protected void dg_RowUpdating(object sender, GridViewDeleteEventArgs e)

phải làm sao bây giờ hả các bác.
hay có cách khác để làm ko. giả sử ơ đây là một bẳng dl bất kì các bác nhé
nó lấy được từ câu lệnh sql : select * from tenbang;

các bác cố giúp em với
Trong đối tượng GridViewDeleteEventArgs có thuộc tính Keys trả về tên khóa và giá trị của khóa của Row bị xóa
Ví dụ có thể dựa vào Keys này để xây dựng một câu SELECT:
Code:
var builder = new System.IO.StringBuilder();
builder.Append("SELECT TOP 1 * FROM TenTable WHERE ")
foreach(String primaryKey in e.Keys.Keys)
{
   builder.Append(primaryKey + "=" + e.Keys[primaryKey].ToString());
}
// In ra câu query
Response.Clear();
Response.Write(builder.ToString());
Response.End();
Ngoài ra còn có thuộc tính Values, chứa những giá trị của Row bị xóa, có thể dùng vòng lặp như trên để nhận giá trị
Code:
var fieldIndex = 0;
var myFieldName = String.Empty;
foreach(String fieldName in e.Values.Keys)
{
   // làm gì đó
   // hoặc có thể kiểm tra fieldIndex == 1 thì lấy tên field và thoát khỏi vòng lặp
   if(fieldIndex == 1)
   {
      myFieldName = fieldName;
      break;
   }
   fieldIndex++;
}
QuanN viết 13:02 ngày 10/10/2018
Tên cột, column header?
Code:
columnHeader = GridView1.Columns[1].HeaderText;
anhchanghaudau viết 12:56 ngày 10/10/2018
Được gửi bởi QuanN
Tên cột, column header?
Code:
columnHeader = GridView1.Columns[1].HeaderText;
HeaderText không phải lúc nào cũng là tên cột, bạn haru... cần sử dụng SQL nên cần biết chính xác tên field (gọi thế này thì đúng hơn), mà tên cột thì nhiều khi đặt là Mã Sinh Viên cho dễ hiểu nhưng trong DB lại là MSV.
QuanN viết 13:04 ngày 10/10/2018
BoundField.DataField chứa tên của data field, mà thường là ColumnName của DataColumn trong DataTable hay tên của Property của Custom Entity nếu đó là datasource của GV, chứ ít khi là tên của database field.
harunaga viết 12:54 ngày 10/10/2018
thanks in advance

cám ơn các bác nhiều. nhưng em đợi mãi mới thấy hồi âm của các bác.
Bài liên quan
0