Solved

grid view - link button click - get primary key

Posted on 2013-01-08
2
870 Views
Last Modified: 2013-01-10
I've got a breakpoint on this method (see code snippet).

Execution stops on the breakpoint at runtime.

I've been looking at values for both sender and e  (passed into the method) and I cannot find the value I am looking for.

What I want is the value for "AgentFormListID" which is the primary key for each row.

I will include below the code snippet a screenshot describing what I want.  I'll also provide markup and code behind.


   protected void gvItems_RowEditing(object sender, GridViewEditEventArgs e)
        {

        }//breakpoint on this line

Open in new window




get pk


markup:
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="AgentFormAdd.ascx.cs"
    Inherits="Reo.ContentControls.AgentFormAdd" %>
<%@ Register Assembly="Framework" Namespace="Framework.UIControls" TagPrefix="cc1" %>
<div id="frame">
    <div id="frame_header">
        <div id="frame_title">
            <h1>
                Add New Agent Form</h1>
        </div>
    </div>

   <%-- <asp:UpdatePanel ID="UpdatePanelAgentFormAdd" runat="server" 
        ChildrenAsTriggers="False">
    <ContentTemplate>--%>
    <div id="corpus">
        <table class="layout_table">
            <tr>
                <td id="tdAMFirm" runat="server" visible="true">
                    <label>
                        AMFirm:</label><cc1:DdlGenericMerchant 
                        ID="ddlAMFirm" LookupCode="Mchnt_AMC" AllowUnassigned="true"
                            runat="server" >
                        </cc1:DdlGenericMerchant>
                </td>
                <td>
                    <label>
                        Client:</label><cc1:DdlGenericMerchant ID="ddlClient" LookupCode="Mchnt_Clnt" runat="server"
                            AutoPostBack="true">
                        </cc1:DdlGenericMerchant>
                </td>
                 <td>
                    <label>
                        Product:<asp:DropDownList ID="ddlProducts" runat="server"></asp:DropDownList>
                      
                     </label>
                </td>
                <td>
                    <asp:Button ID="ButtonShowAMFClientAgentForms" runat="server" Text="Show" 
                        onclick="ButtonShowAMFClientAgentForms_Click" />
                </td>
            </tr>          
            <tr>
                <asp:GridView ID="gvItems" runat="server" AutoGenerateColumns="false" AllowSorting="true"
                    AllowPaging="true" PageSize="100" CssClass="DataGrid"
                    HeaderStyle-CssClass="DataGrid_Header" RowStyle-CssClass="DataGrid_Row" 
                    Visible="true" DataKeyNames="AgentFormListID" onrowediting="gvItems_RowEditing">
                    <Columns>                         
                       <asp:TemplateField Visible="false">                                                    
                            <ItemTemplate>
                                <asp:Label ID="lblAgentFormListID" runat="server" Text='<%# Eval("AgentFormListID") %>' Font-Size="X-Small"></asp:Label>
                            </ItemTemplate>
                        </asp:TemplateField>    
                        <asp:TemplateField Visible="true">
                        <HeaderTemplate>Type</HeaderTemplate>
                            <ItemTemplate>
                                <asp:Label ID="lblFormTypeID" runat="server" Text='<%# Eval("FormTypeID") %>' Font-Size="X-Small"></asp:Label>
                            </ItemTemplate>
                        </asp:TemplateField> 
                        <asp:TemplateField Visible="true">
                        <HeaderTemplate>Name</HeaderTemplate>
                            <ItemTemplate>
                                <asp:Label ID="lblFormName" runat="server" Text='<%# Eval("FormName") %>' Font-Size="X-Small"></asp:Label>
                            </ItemTemplate>
                        </asp:TemplateField>                                            
                        <asp:TemplateField Visible="true">
                        <HeaderTemplate>Colist</HeaderTemplate>
                            <ItemTemplate>
                                <asp:Label ID="lblColistFlag" runat="server" Text='<%# Eval("ColistFlag") %>' Font-Size="X-Small"></asp:Label>
                            </ItemTemplate>
                        </asp:TemplateField>                                            
                        <asp:TemplateField Visible="true">
                        <HeaderTemplate>Acceptance Reqd</HeaderTemplate>
                            <ItemTemplate>
                                <asp:Label ID="lblAcceptanceReqd" runat="server" Text='<%# Eval("AcceptanceReqd") %>' Font-Size="X-Small"></asp:Label>
                            </ItemTemplate>
                        </asp:TemplateField>                                            
                        <asp:TemplateField Visible="true">
                        <HeaderTemplate>Duplicates Allowed</HeaderTemplate>
                            <ItemTemplate>
                                <asp:Label ID="lblDuplicatesAllowed" runat="server" Text='<%# Eval("DuplicatesAllowed") %>' Font-Size="X-Small"></asp:Label>
                            </ItemTemplate>
                        </asp:TemplateField>                                            
                        <asp:TemplateField Visible="true">
                        <HeaderTemplate>External Link</HeaderTemplate>
                            <ItemTemplate>
                                <asp:Label ID="lblExternalLink" runat="server" Text='<%# Eval("ExternalLink") %>' Font-Size="X-Small"></asp:Label>
                            </ItemTemplate>
                        </asp:TemplateField>                                            
                        <asp:TemplateField Visible="true">
                        <HeaderTemplate>Active</HeaderTemplate>
                            <ItemTemplate>
                                <asp:Label ID="lblActive" runat="server" Text='<%# Eval("Active") %>' Font-Size="X-Small"></asp:Label>
                            </ItemTemplate>
                        </asp:TemplateField>   
                         <asp:TemplateField Visible="true">
                         <ItemTemplate>
                            <asp:LinkButton runat="server" ID="LinkEdit" Enabled="true" CommandName="Edit" CommandArgument='<%# Eval("AgentFormListID") %>' >Edit</asp:LinkButton>
                         </ItemTemplate>
                        </asp:TemplateField>
                    </Columns>
                </asp:GridView>
            </tr>
        </table>
    </div>
 <%--   </ContentTemplate>
    </asp:UpdatePanel>--%>

    <div id="footer">
    </div>
</div>
<div id="end_cap">
</div>

Open in new window



code behind:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

using System.IO;
using System.Data.Linq;
using System.Data;

using Models;
using Framework.Business;
using Framework.Utilities;
using System.Xml.Linq;
using Framework.UIControls.Base;
using System.Configuration;
using System.Text;
using System.Data.OleDb;
using System.Data.Common;
using System.Threading;

namespace Reo.ContentControls
{
    public partial class AgentFormAdd : Reo.Base.BaseControl
    {
        #region -- Members --
        protected User CurrentUser = Security.GetUserFromCache();
        DataTable Columns;
        StringBuilder errorMessage;
        List<AssetUpload_LoadResult> Loannumbers;
        List<string> LoadedLoannumbers = new List<string>();
        private bool IsPopupPost = false;
        protected List<ProductType_DropDown_GetResult> _ProductType;
        OleDbCommand command = null;
        DbDataReader dr = null;
        private User cuser = Security.GetUserFromCache();
        string path;
        protected List<Models.AgentFormAdd_AgentFormTypes_SelectResult> showamfclientagentforms;

        #endregion

        protected void Page_Load(object sender, EventArgs e)
        {
            FillProductTypeDDL();
           // ShowAMFClientAgentForms();
        }

        private void FillProductTypeDDL()
        {
            ProductTypeDataContext pdc = new ProductTypeDataContext();
            var result = pdc.ProductType_DropDown_Get(null, null, CurrentUser.UserID, CurrentUser.UserSID).ToList();
            this.ddlProducts.DataSource = result;
            ddlProducts.DataTextField = "Name";
            ddlProducts.DataValueField = "ProductTypeID";
            ddlProducts.DataBind();

         //   ddlProducts.Items.Insert(0, new ListItem("[Select]", "-1"));
        }

        private void ShowAMFClientAgentForms()
        {
            using (AgentFormsDataContext dc = new AgentFormsDataContext())
            {
                int tempamfid = Convert.ToInt32(ddlAMFirm.SelectedValue.Split('-')[0]);
                int tempclientid = Convert.ToInt32(ddlClient.SelectedValue.Split('-')[0]);
                int tempproductid = Convert.ToInt32(ddlProducts.SelectedValue.Split('-')[0]);

                showamfclientagentforms = dc.AgentFormAdd_AgentFormTypes_Select(tempamfid,tempclientid,tempproductid).ToList<AgentFormAdd_AgentFormTypes_SelectResult>();
                this.gvItems.DataSource = showamfclientagentforms;
                this.gvItems.DataBind();
            }
        }      

        protected void ButtonShowAMFClientAgentForms_Click(object sender, EventArgs e)
        {
            ShowAMFClientAgentForms();
        } 

        protected void gvItems_RowEditing(object sender, GridViewEditEventArgs e)
        {

        }

    }
}

Open in new window

0
Comment
Question by:knowlton
2 Comments
 
LVL 53

Accepted Solution

by:
Dhaest earned 500 total points
ID: 38757961
Here I am explaining how to get the reference of the GridView Row and also the GridView Row Index when Button, ImageButton, or LinkButton is clicked or RowCommand Event is fired. In addition to that I will also explain how to add multiple CommandArguments to Control in GridView and retrieve the same.

Did you check it through the gridrow ?

protected void OnRowCommand(object sender, GridViewCommandEventArgs e)

{

    int index = Convert.ToInt32(e.CommandArgument);

    GridViewRow gvRow = GridView1.Rows[index];  
-- > now you can get the id in the gvrow ...

}


source = http://aspsnippets.com/Articles/ASP.Net-GridView---Get-Row-Index-on-RowCommand-and-Click-events.aspx
0
 
LVL 5

Author Comment

by:knowlton
ID: 38763692
Got this working.  It was OnRowCommand that I needed, as you suggested.
0

Featured Post

How your wiki can always stay up-to-date

Quip doubles as a “living” wiki and a project management tool that evolves with your organization. As you finish projects in Quip, the work remains, easily accessible to all team members, new and old.
- Increase transparency
- Onboard new hires faster
- Access from mobile/offline

Join & Write a Comment

IP addresses can be stored in a database in any of several ways.  These ways may vary based on the volume of the data.  I was dealing with quite a large amount of data for user authentication purpose, and needed a way to minimize the storage.   …
More often than not, we developers are confronted with a need: a need to make some kind of magic happen via code. Whether it is for a client, for the boss, or for our own personal projects, the need must be satisfied. Most of the time, the Framework…
In this tutorial you'll learn about bandwidth monitoring with flows and packet sniffing with our network monitoring solution PRTG Network Monitor (https://www.paessler.com/prtg). If you're interested in additional methods for monitoring bandwidt…
When you create an app prototype with Adobe XD, you can insert system screens -- sharing or Control Center, for example -- with just a few clicks. This video shows you how. You can take the full course on Experts Exchange at http://bit.ly/XDcourse.

707 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

10 Experts available now in Live!

Get 1:1 Help Now