Đầu tiên tôi tạo ứng dụng asp.net mới và thêm đoạn code dưới đây vào trang.
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebApplication1.WebForm1" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Hide Or Show Gridview Column By Column Index at RunTime In Asp.Net Using C#.Net
</title>
</head>
<body>
<form id="form1" runat="server">
<table width="100%" cellpadding="4" cellspacing="4">
<tr>
<td align="left">
<asp:GridView ID="GridView1" runat="server" Width="100%" AutoGenerateColumns="False"
ShowFooter="True" OnRowDataBound="GridView1_RowDataBound">
<Columns>
<asp:TemplateField HeaderText="Name">
<ItemTemplate>
<asp:Label ID="lblName" runat="server" Text='<%# Eval("Name") %>'></asp:Label>
</ItemTemplate>
<FooterStyle Font-Bold="True" />
</asp:TemplateField>
<asp:TemplateField HeaderText="Address">
<ItemTemplate>
<asp:Label ID="lblNamAddress" runat="server" Text='<%# Eval("Address") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Type">
<ItemTemplate>
<asp:Label ID="lblUserType" runat="server" Text='<%# Eval("UserType") %>'></asp:Label>
</ItemTemplate>
<FooterStyle HorizontalAlign="Right" />
</asp:TemplateField>
<asp:TemplateField HeaderText="Earning">
<ItemTemplate>
<asp:Label ID="lbltotal" runat="server" Text='<%# Eval("Earning") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</td>
</tr>
</table>
</form>
</body>
</html>
Trong đoạn mã trên, tôi đã sử dụng ItemTemplate để ràng buộc các trường trên GridView và sử dụng control label để hiển thị giá trị sử dụng Eval. Trong này tôi đã cung cấp giá trị cho mỗi tiêu đề. Bây giờ kiểm tra mã để ràng buộc và không hiển thị.
using System;
using System.Data.SqlClient;
using System.Data;
using System.Linq;
using System.Web.UI.WebControls;
using System.Collections;
namespace WebApplication1
{
public partial class WebForm1 : System.Web.UI.Page
{
DataTable objdt = new DataTable();
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
GetDistinctValue();
}
}
private void GetDistinctValue()
{
SqlConnection con = new SqlConnection(System.Configuration.
ConfigurationManager.ConnectionStrings["con"].ToString());
try
{
string query = "select * from UserDetail;";
SqlDataAdapter da = new SqlDataAdapter(query, con);
con.Open();
da.Fill(objdt);
con.Close();
if (objdt.Rows.Count > 0)
{
GridView1.DataSource = objdt;
GridView1.DataBind();
}
}
catch
{
con.Close();
}
}
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
/*Hide*/
e.Row.Cells[3].Visible = false;
/*Show*/
//e.Row.Cells[3].Visible = true;
}
}
}
Mã trên tôi đã sử dụng chức năng ràng buộc dữ liệu. Bây giờ kiểm tra mã dưới đây để ẩn cột.
Dưới đây là kết quả: