Solved

Assigning a datagrid row item to a label

Posted on 2007-11-30
8
813 Views
Last Modified: 2012-08-13
I'd like to assign a data item on a grid row to a label when it's selected. I used the following, but I receive the error:

System.Web.UI.WebControls.GridViewRow

Code:

      Protected Sub grdPromo_SelectedIndexChange(ByVal sendar As Object, ByVal e As System.EventArgs)
            lblStore.Text = grdPromo.Rows.Item(2).ToString
      End Sub

Any suggestions? Thanks.

Open in new window

0
Comment
Question by:barnesco
8 Comments
 
LVL 16

Expert Comment

by:anoyes
ID: 20385859
You haven't specified which row to get the item from.  For example, to reference the third column in the second row, use lblStore.Text = grdPromo.Rows(1).Item(2).ToString

Or to base the row off the selection of the gridview, use lblStore.Text = grdPromo.Rows(grdPromo.SelectedIndex).Item(2).ToString
0
 

Author Comment

by:barnesco
ID: 20386011
The second is more for what I need,

lblStore.Text = grdPromo.Rows(grdPromo.SelectedIndex).Item(2).ToString

but I'm receiving the error: 'Item' is not a member of System.Web.UI.WebControls.GridViewControls
0
 
LVL 16

Assisted Solution

by:anoyes
anoyes earned 200 total points
ID: 20386770
Sorry, my bad.

lblStore.Text = grdPromo.Rows(grdPromo.SelectedIndex).Cells(2).Text
0
 
LVL 2

Accepted Solution

by:
yossi_intlock earned 300 total points
ID: 20386818
to get a specific value in a row use: GridView1.Rows(GridView1.SelectedIndex).Cells(2).Text
the cell index is your datafield index. if you are using templated fields than youll have to fnd you control for example if you have a field like that  :
<asp:TemplateField HeaderText="CFTITLE" SortExpression="CFTITLE">
                    <EditItemTemplate>
                        <asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("CFTITLE") %>'></asp:TextBox>
                    </EditItemTemplate>
                    <ItemTemplate>
                        <asp:Label ID="Label1" runat="server" Text='<%# Bind("CFTITLE") %>'></asp:Label>
                    </ItemTemplate>
                </asp:TemplateField>
use
Dim lbl As Label = GridView1.Rows(GridView1.SelectedIndex).FindControl("Label1")
        Dim myText As String = lbl.Text

to get your value directly from your datasource - add a datakeyfield to ur gridview than get this key by the selected row index
Dim key As DataKey = GridView1.DataKeys(GridView1.SelectedIndex)
        Dim keyValue As String = key.Value
and than find your datarow (in the datasource) by this key
DataTable1.select("key='keyValue'") as datarow
0
Do You Know the 4 Main Threat Actor Types?

Do you know the main threat actor types? Most attackers fall into one of four categories, each with their own favored tactics, techniques, and procedures.

 

Author Comment

by:barnesco
ID: 20386870
It's still not returning a value. The index seems right, returning the correct row, and I've tried all the cell values possible, but no values are being returned.
0
 
LVL 10

Expert Comment

by:digitalZo
ID: 20387108
How are you selecting the row? Have you given any checkbox or select button or something to select the row?

Check out this:
http://msdn2.microsoft.com/en-us/library/system.web.ui.webcontrols.gridview.selectedindexchanged.aspx

The SelectedIndexChanged event is raised when a row's Select button is clicked, but after the GridView control handles the select operation
0
 

Author Comment

by:barnesco
ID: 20388131
That's exactly the site I looked up last night, and there is a select row in the grid. In fact, it calls another grid to display a detailed view (I just need a label to display the view).  I have

<asp:GridView ID="grdPromo" OnSelectedIndexChanged="grdPromo_SelectedIndexChange" ... />

and

      Protected Sub grdPromo_SelectedIndexChange(ByVal sendar As Object, ByVal e As EventArgs)
            Dim row As GridViewRow = grdPromo.SelectedRow
            lblStore.Text = row.Cells(2).Text         'grdPromo.Rows(grdPromo.SelectedIndex).Cells(2).Text
      End Sub

(I commented out what was suggested before). I've tried different cell positions, nevertheless, 2 should be right, being the third cell). When I perform a debug, the count shows correctly (7), but item shows "Item = In order to evaluate an indexed property, the property must be qualified and the arguments must be explicitly supplied by the user."

Could that be something?
0
 

Author Comment

by:barnesco
ID: 20388693
I apologize. I'm using DotNetNuke and it must have something to do with how it returns data--I just tried the above code in another environment, and it works great.

Thank you, all, for your contributions. They were very helpful.
0

Featured Post

Highfive Gives IT Their Time Back

Highfive is so simple that setting up every meeting room takes just minutes and every employee will be able to start or join a call from any room with ease. Never be called into a meeting just to get it started again. This is how video conferencing should work!

Join & Write a Comment

One of the pain points with developing AJAX, JavaScript, JQuery, and other client-side behaviors is that JavaScript doesn’t allow for cross domain request for pulling content. For example, JavaScript code on www.johnchapman.name could not pull conte…
In .NET 2.0, Microsoft introduced the Web Site.  This was the default way to create a web Project in Visual Studio 2005.  In Visual Studio 2008, the Web Application has been restored as the default web Project in Visual Studio/.NET 3.x The Web Si…
Illustrator's Shape Builder tool will let you combine shapes visually and interactively. This video shows the Mac version, but the tool works the same way in Windows. To follow along with this video, you can draw your own shapes or download the file…
You have products, that come in variants and want to set different prices for them? Watch this micro tutorial that describes how to configure prices for Magento super attributes. Assigning simple products to configurable: We assigned simple products…

744 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

13 Experts available now in Live!

Get 1:1 Help Now