How to restrict an item from being selected using GridView SelectedIndexChanging Event

When there is a need to restrict a row of a GridView from being selected by the user we use the SelectedIndexChanging event of the GridView control.

When a row's Select button is clicked, the SelectedIndexChanging event is raised. This event is raised before the GridView control handles the select operation.

To restrict a row of a GridView from being selected, we create an event-handling method that cancels the selection operation. The code given below creates and formats a GridView control.



<asp:gridview id="ItemsGridView" datasourceid="MyDataSource" 
autogeneratecolumns="true" autogenerateselectbutton="true" allowpaging="true" 
selectedindex="0" onselectedindexchanged="ItemsGridView_SelectedIndexChanged"
OnSelectedIndexChanging="ItemsGridView_SelectedIndexChanging"   
runat="server">
<selectedrowstyle backcolor="BlanchedAlmond" forecolor="DarkBlue" 
BorderColor="Beige" BorderStyle="Dotted" BorderWidth="3" 
Font-Size="Medium" font-bold="true"/>  
</asp:gridview>
<br/>
<asp:label id="Message"    forecolor="Red"    runat="server"/>
<asp:SqlDataSource ID="MyDataSource"  
ConnectionString="<%$Connectionstrings:ERPConnectionString%>"
SelectCommand="SELECT ItemID,ItemName,ItemType,ClStk FROM ItemTable" 
runat="server"/>

In the code given above, the method 'OnSelectedIndexChanging' of the GridView control is assigned to the event handler ItemsGridView_SelectedIndexChanging.

The following code is the event handler for the SelectedIndexChanging event. The GridViewSelectEventArgs object is passed to the event-handling method and enables us to determine the index of the row selected by the user. To cancel the selection operation, set the Cancel property of the GridViewSelectEventArgs object to 'true'.


void ItemsGridView_SelectedIndexChanging(Object sender, GridViewSelectEventArgs e)
{
	GridViewRow row = ItemsGridView.Rows[e.NewSelectedIndex];
	if (row.Cells[3].Text == "4")
	{	
		e.Cancel = true;
		Message.Text = "You cannot select " + row.Cells[2].Text + ".";
	}
}
To get the currently selected row, use the Rows collection of the GridView and the NewSelectedIndex property of the e argument. We cannot use the SelectedRow property of the GridView control because the SelectedIndexChanging event occurs before the select operation.

If the user selects an item which has the ItemType "4" (4 is chosen for this example), the select operation is cancelled and an error message is displayed. In this example, the second and third columns contain the ItemName and ItemType data respectively. We cancel the select operation by using the Cancel property.





cover image of azure cloud book

Develop Azure Applications

Azure Cloud is gaining popularity and is competing with Amazon Elastic Cloud and Google Cloud for a spot in the billion dollar Cloud computing space.

With this book learn how to use - Table (an Azure Table is different from a SQL Server Table), Queue, Blob storage services, use your local machine to create an Application and a Service, how Azure splits a Table to achieve Load Balancing, Scalability based on the Partition Key, AppFabric Service Bus, Access Control Service, role of Fabric Controller, features of Azure SQL Database and Content Delivery Network.

Many have mastered Cloud Programming and are enjoying the benefits. Why not you?

View Highlights » View Contents »
cover image of foundation database programming book

Create your Own Accounting Software

A foundation book to Master Accounting Software Development, VB.Net, C# and OOPs programming. Detailed explanation of the Accounting domain for programmers is included. SQL and ADO.Net is also covered in detail.

This book gives you a strong foundation in Application Development.

A thorough understanding of the contents will enable you to grasp the topics covered in the accompanying books quite easily. This is because, the accounting domain is dealt with great detail in this book.

The ideal book to get started with application development in the .Net world.

View Highlights » View Contents »

cover image of asp.net book

Create your Own WEB ERP Software using ASP.Net

This book opens you to the Web. Using ASP.Net, C# and SQL Server as the tools, you will learn to build a Multi Tier Web Application as recommended by Microsoft. You will learn implementing inline GridView control, Transaction Management for a layered Web Application, build Data Access component and a Business Layer component.

Opens you to a world of opportunities. You will be able to develop a Web ERP application including all the five modules and learn how to use the TreeView control and GridView control to implement transactions such as Purchase Invoice, Sales Order and Sales Invoice.

View Highlights »
cover image of entity framework book

ASP.Net MVC 5 Application Development Using Entity Framework 6 and VS 2015

Entity frameworks is the latest buzz in .Net programming and is the data access technology for Microsoft OS based hand held devices and web applications. Learn to integrate EF into an ASP.Net Application and MVC application. Create, explore and query the Entity Data Model. Learn how to use ObjectDataSource control and GridView control in an ASP.Net Application.

Also, learn to build Three-Tier ASP.Net application, create a business-class, implement methods in the class to perform CRUD operations and bind a GridView to the ObjectDataSource control. Learn how to handle concurrency and managing Transactions.

View Contents »