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
|
No comments:
Post a Comment