Retrieve a non-primary DataKey value from a GridView

We have seen how to set the DataKeyNames property of the GridView control with the primary key field of the data table. The DataKeyNames property also allows to set multiple DataKey values.



The example given below demonstrates how to retrieve a non-primary DataKey value from a GridView. In the example, GridView control is used to display records from the accounts table of the ERP database. In the GridView control's declaration, we set the AccountCode as the first key name and AccountName as the second key name and AccountDescription as third key name. Even though, the AccountName and AccountDescription are not the primary key fields, we can assign these non primary key fields to the DataKeyNames property as shown in the code given below.

<asp:GridView ID="GridView1"  DataSourceId="MyAccDataSource" 
DataKeyNames="AccountCode,AccountName,AccountDescription" 
  AutoGenerateSelectButton="true" 
  onSelectedIndexChanged="GridView1_SelectedIndexChanged"  runat="server">

</asp:GridView>

We need to configure the SqlDataSource control to retrieve data from the AccountsTable.

<asp:SqlDataSource ID="MyAccDataSource"  
ConnectionString="<%$Connectionstrings:ERPConnectionString%>"
SelectCommand="SELECT AccountsTable.AccountCode,AccountsTable.AccountName, 
AccountsTable.AccountDescription FROM AccountsTable" runat="server"/>

When the user selects a row in the gridView control, the SelectedIndexChanged event is raised. In the SelectedIndexChanged event handler of the gridview we need to write the following code.

protected void GridView1_SelectedIndexChanged(Object src, EventArgs e)
{
 string Description = GridView1.DataKeys[GridView1.SelectedIndex].
 Values["AccountDescription"].ToString();
}

GridView control stores data keys as a collection and this collection is called the DataKeys collection. This DataKeys collection is exposed by the GridView control's DataKeys property. We retrieve the data key associated with a selected row by using the statement:
string id = GridView1.DataKeys[GridView1.SelectedIndex].Value.ToString();
This statement returns the value of the data key associated with the selected row of the gridView control.

Here, we have assigned multiple data keys to DataKeyNames property. So we can use a statement that looks like this:
string Description = GridView1.DataKeys[GridView1.SelectedIndex].Values["AccountDescription"].ToString();

The above statement retrieves the value of the AccountDescription key for the selected row in the GridView control.



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 »