2012-06-13 12 views
18

Có thể hiển thị/ẩn cột GridView khi chạy theo tên không?Ẩn một cột GridView theo tên tại thời gian chạy trong ASP.Net

tôi có thể làm điều đó thông qua các chỉ số như sau:

gridReviews.Columns[4].Visible = false; 

Tuy nhiên tôi muốn làm như sau:

gridReviews.Columns["Name"].Visible = false; 

cách tốt nhất để làm điều này là gì?

+0

Bạn có muốn sử dụng văn bản tiêu đề hoặc tên cột/thuộc tính trong nguồn dữ liệu cơ bản không? – David

+0

Bạn nêu ra một điểm tốt có thể ngăn cản tôi. Văn bản Tiêu đề có thể thay đổi tùy thuộc vào dữ liệu lưới nên tôi không thể sử dụng. Tuy nhiên cột mà tôi cần phải ẩn là một TemplateField mà không bị ràng buộc vào một nguồn dữ liệu và nó dường như không có một ID. – Sun

Trả lời

17

Bạn có thể sử dụng đoạn mã sau cho nó:

foreach (DataControlField col in gridReviews.Columns) 
     { 
      if (col.HeaderText == "Name") 
      { 
       col.Visible = false; 
      } 
     } 
0

Bạn có thể truy cập vào GridView theo tên cột gián tiếp nếu bạn có thể truy cập vào dữ liệu mà bạn sử dụng để ràng buộc GridView và các cột GridView là theo thứ tự là dữ liệu có thể đặt (và AutoGenerateColumns = false):

//Make ID column invisible by column name 
gv.Columns[dt.Columns[ID].Ordinal].Visible = false;