Introduction:
Here I will explain how to enable or disable checkbox in gridview
based on condition in asp.net using C#
and VB.NET.
Description:
In previous articles I explained Get Gridview row values when checkbox selected in asp.net, Convert gridview columns into hyperlink fields, Asp.net Interview questions, Export Gridview data to PDF, Send values from one page to another page using QueryString,
Joins in SQL Server and many articles relating to Gridview,
SQL ,jQuery,asp.net,
C#,VB.NET.
Now I will explain how to enable or disable checkboxes in asp.net
gridview
based on condition in C#
and VB.NET.
By using gridview
rowdatabound event we can enable / disable checkbox in gridview
based on certain conditions for that we need to write the code like as shown
below
C#
Code
protected void
gvDetails_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
CheckBox chk = (CheckBox)e.Row.FindControl("chkSelect");
if (e.Row.Cells[4].Text == "Chennai")
{
chk.Enabled = false;
}
else
{
chk.Enabled = true;
}
}
}
|
VB.NET
Code
Protected Sub
gvDetails_RowDataBound(sender As Object, e As GridViewRowEventArgs)
If e.Row.RowType = DataControlRowType.DataRow
Then
Dim chk As CheckBox = DirectCast(e.Row.FindControl("chkSelect"), CheckBox)
If e.Row.Cells(4).Text = "Chennai"
Then
chk.Enabled = False
Else
chk.Enabled = True
End If
End If
End Sub
|
In above code if you observer I am checking
for column values if it equal to "Chennai" then I am disabling checkbox
otherwise checkbox enabled.
If you want to see complete example
we need to write the following code in aspx page
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Enable/Disable
Checkbox in Gridview based on condtion in Asp.net</title>
</head>
<body>
<form id="form1"
runat="server">
<div>
<asp:GridView ID="gvDetails" AutoGenerateColumns="false" CellPadding="5" runat="server" OnRowDataBound="gvDetails_RowDataBound">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:CheckBox ID="chkSelect" runat="server" />
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField HeaderText="UserId" DataField="UserId" />
<asp:BoundField HeaderText="UserName" DataField="UserName" />
<asp:BoundField HeaderText="Education" DataField="Education" />
<asp:BoundField HeaderText="Location" DataField="Location" />
</Columns>
<HeaderStyle BackColor="#df5015" Font-Bold="true" ForeColor="White" />
</asp:GridView>
</div>
</form>
</body>
</html>
|
Now in code behind add the following namespaces
C#
Code
using System;
using System.Data;
using System.Data.SqlClient;
using System.Web.UI.WebControls;
|
Now add below code in code
behind
protected void
Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
BindGridviewData();
}
}
protected void
BindGridviewData()
{
DataTable dt = new DataTable();
dt.Columns.Add("UserId",
typeof(Int32));
dt.Columns.Add("UserName",
typeof(string));
dt.Columns.Add("Education",
typeof(string));
dt.Columns.Add("Location",
typeof(string));
DataRow dtrow = dt.NewRow(); // Create New
Row
dtrow["UserId"]
= 1; //Bind Data to Columns
dtrow["UserName"]
= "SureshDasari";
dtrow["Education"]
= "B.Tech";
dtrow["Location"]
= "Chennai";
dt.Rows.Add(dtrow);
dtrow = dt.NewRow(); //
Create New Row
dtrow["UserId"]
= 2; //Bind Data to Columns
dtrow["UserName"]
= "MadhavSai";
dtrow["Education"]
= "MBA";
dtrow["Location"]
= "Nagpur";
dt.Rows.Add(dtrow);
dtrow = dt.NewRow(); //
Create New Row
dtrow["UserId"]
= 3; //Bind Data to Columns
dtrow["UserName"]
= "MaheshDasari";
dtrow["Education"]
= "B.Tech";
dtrow["Location"]
= "Nuzividu";
dt.Rows.Add(dtrow);
gvDetails.DataSource = dt;
gvDetails.DataBind();
}
protected void
gvDetails_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
CheckBox chk = (CheckBox)e.Row.FindControl("chkSelect");
if (e.Row.Cells[4].Text == "Chennai")
{
chk.Enabled = false;
}
else
{
chk.Enabled = true;
}
}
}
|
VB.NET
Code
Imports System.Data
Imports System.Data.SqlClient
Imports System.Web.UI.WebControls
Partial Class EnableDisableCheckboxeswithCondition
Inherits System.Web.UI.Page
Protected Sub
Page_Load(sender As Object,
e As EventArgs)
Handles Me.Load
If Not IsPostBack Then
BindGridviewData()
End If
End Sub
Protected Sub
BindGridviewData()
Dim dt As New DataTable()
dt.Columns.Add("UserId",
GetType(Int32))
dt.Columns.Add("UserName",
GetType(String))
dt.Columns.Add("Education",
GetType(String))
dt.Columns.Add("Location",
GetType(String))
Dim dtrow As DataRow = dt.NewRow()
' Create New Row
dtrow("UserId")
= 1
'Bind Data to Columns
dtrow("UserName")
= "SureshDasari"
dtrow("Education")
= "B.Tech"
dtrow("Location")
= "Chennai"
dt.Rows.Add(dtrow)
dtrow = dt.NewRow()
' Create New Row
dtrow("UserId")
= 2
'Bind Data to Columns
dtrow("UserName")
= "MadhavSai"
dtrow("Education")
= "MBA"
dtrow("Location")
= "Nagpur"
dt.Rows.Add(dtrow)
dtrow = dt.NewRow()
' Create New Row
dtrow("UserId")
= 3
'Bind Data to Columns
dtrow("UserName")
= "MaheshDasari"
dtrow("Education")
= "B.Tech"
dtrow("Location")
= "Nuzividu"
dt.Rows.Add(dtrow)
gvDetails.DataSource = dt
gvDetails.DataBind()
End Sub
Protected Sub
gvDetails_RowDataBound(sender As Object, e As GridViewRowEventArgs)
If e.Row.RowType = DataControlRowType.DataRow
Then
Dim chk As CheckBox = DirectCast(e.Row.FindControl("chkSelect"), CheckBox)
If e.Row.Cells(4).Text = "Chennai"
Then
chk.Enabled = False
Else
chk.Enabled = True
End If
End If
End Sub
End Class
|
Demo
|
If you enjoyed this post, please support the blog below. It's FREE! Get the latest Asp.net, C#.net, VB.NET, jQuery, Plugins & Code Snippets for FREE by subscribing to our Facebook, Twitter, RSS feed, or by email. |
|||
|
|||
7 comments :
I have gridview where i am displaying employee information.Its an modalpopup and in that its the gridview.I select records from their and save.while i have to update/change employee i have selected.i first bind the saved data to that gridview but while binding i have to get the appropriate checkbox checked by default may be it on other pages also i.e if i have selected from other pages of it.it should match the Datakeynames.(emp_pk)
Please sir help me.Its urgent.
My requirement I have three columns like Name ID and Role .when we select role like admin in grid view it should display drop down list in the column next to Role i.e control column.If the role is user then text box should display in the control column.please help me out.
HI sir, i created grid view .. in my grid i cannot edit and delete functions.. please give a solution for me..am sanjay
very gdmrng sir my requirment are sql data base connection grid view data at using send the emailid field from all all email addresses to deliver send message with textbox data...with one click ..plz its a vey urgent sir.i m waiting for ur answer siir
thanks buddy.. you saved my time lot
Note: Only a member of this blog may post a comment.