Solved

get rowid in gridview

Posted on 2009-07-14
7
562 Views
Last Modified: 2012-05-07
I have a gridview and want to capture the rowid so I can pass it as a parameter in a query string. Below is my code thus far and it is only working for the first row and not the others rows.
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
            CellPadding="4" DataKeyNames="ReqId" DataSourceID="SqlDataSource1" 
            ForeColor="#333333" GridLines="None" AllowPaging="True" 
            AllowSorting="True" 
            OnSelectedIndexChanged="GridView1_SelectedIndexChanged" 
            onpageindexchanged="GridView1_PageIndexChanged" 
            >
            <RowStyle BackColor="#EFF3FB" />
            <Columns>
                <asp:CommandField ShowSelectButton="True" />
                <asp:BoundField DataField="ReqId" HeaderText="Requisition Id" 
                    SortExpression="ReqId" Visible="true" />
 
 
<asp:LinkButton ID="lnkbtnChangeReq" runat="server" 
                onclick="lnkbtnChangeReq_Click">Change Requisition</asp:LinkButton>
 
 
protected void lnkbtnChangeReq_Click(object sender, EventArgs e)
    {
        //GridView1
        string rowId = GridView1.DataKeys[0].Value.ToString();
        //try to prevent url tampering
        Random random = new Random();
        int num = random.Next(1000); //random number that means nothing
        string strq = "m"; //modify for close of req
        //build querystring
        string url = "updaterequisition.aspx?";
        url += "rid=" + rowId + "&";
        url += "svd=" + num + "&";
        url += "sr=" + strq;
        Response.Redirect(url);
    }

Open in new window

0
Comment
Question by:fwstealer
7 Comments
 
LVL 8

Expert Comment

by:Bob Hoffman
ID: 24850814
look at the ItemDataBound event. You can use e.Row to build the link reference when the grid is being bound.
0
 
LVL 22

Expert Comment

by:prairiedog
ID: 24850842
Is "lnkbtnChangeReq" defined inside the GridView or outside?
0
 
LVL 15

Expert Comment

by:jinal
ID: 24850959
First my question lnkbtnChangeReq is out side GridView or inside grdiview.

1. IF out side.




protected void lnkbtnChangeReq_Click(object sender, EventArgs e)
    {
        //GridView1
        string rowId = GridView1.DataKeys[GridView1.SelectedRow.RowIndex].Value.ToString();
        //try to prevent url tampering
        Random random = new Random();
        int num = random.Next(1000); //random number that means nothing
        string strq = "m"; //modify for close of req
        //build querystring
        string url = "updaterequisition.aspx?";
        url += "rid=" + rowId + "&";
        url += "svd=" + num + "&";
        url += "sr=" + strq;
        Response.Redirect(url);
    }

Open in new window

0
NAS Cloud Backup Strategies

This article explains backup scenarios when using network storage. We review the so-called “3-2-1 strategy” and summarize the methods you can use to send NAS data to the cloud

 
LVL 15

Accepted Solution

by:
jinal earned 500 total points
ID: 24850981
It is better to check SelectedRow is null or not.

protected void lnkbtnChangeReq_Click(object sender, EventArgs e)
    {
        //GridView1
        if(GridView1.SelectedRow != null)
        {
        string rowId = GridView1.DataKeys[GridView1.SelectedRow.RowIndex].Value.ToString();
        //try to prevent url tampering
        Random random = new Random();
        int num = random.Next(1000); //random number that means nothing
        string strq = "m"; //modify for close of req
        //build querystring
        string url = "updaterequisition.aspx?";
        url += "rid=" + rowId + "&";
        url += "svd=" + num + "&";
        url += "sr=" + strq;
        Response.Redirect(url);
       }
    }

Open in new window

0
 

Author Comment

by:fwstealer
ID: 24851227
lnkbtnChangeReq is outside of the gridview.
0
 
LVL 15

Expert Comment

by:jinal
ID: 24851239
Try my previos two comments. it helps you.
0
 
LVL 22

Expert Comment

by:prairiedog
ID: 24851289
Here is what you need to do:

protected void lnkbtnChangeReq_Click(object sender, EventArgs e)
    {
        //GridView1
        GridViewRow row = (GridViewRow)(sender.NamingContainer);
        string rowId = GridView1.DataKeys[row.RowIndex].Value.ToString();
        //try to prevent url tampering
        Random random = new Random();
        int num = random.Next(1000); //random number that means nothing
        string strq = "m"; //modify for close of req
        //build querystring
        string url = "updaterequisition.aspx?";
        url += "rid=" + rowId + "&";
        url += "svd=" + num + "&";
        url += "sr=" + strq;
        Response.Redirect(url);
    }

Open in new window

0

Featured Post

Problems using Powershell and Active Directory?

Managing Active Directory does not always have to be complicated.  If you are spending more time trying instead of doing, then it's time to look at something else. For nearly 20 years, AD admins around the world have used one tool for day-to-day AD management: Hyena. Discover why

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

This article discusses the ASP.NET AJAX ModalPopupExtender control. In this article we will show how to use the ModalPopupExtender control, how to display/show/call the ASP.NET AJAX ModalPopupExtender control from javascript, how to show/display/cal…
Sometimes in DotNetNuke module development you want to swap controls within the same module definition.  In doing this DNN (somewhat annoyingly) swaps the Skin and Container definitions to the default admin selections.  To get around this you need t…
This Micro Tutorial will give you a basic overview how to record your screen with Microsoft Expression Encoder. This program is still free and open for the public to download. This will be demonstrated using Microsoft Expression Encoder 4.
With Secure Portal Encryption, the recipient is sent a link to their email address directing them to the email laundry delivery page. From there, the recipient will be required to enter a user name and password to enter the page. Once the recipient …

777 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