Solved

ASP.net Datagrid Click event??

Posted on 2003-11-11
3
347 Views
Last Modified: 2008-02-01
Hi I am am trying to find the EASIEST way to have a user click on a populated datagrid (via a programmatic dataset) to populate text boxes and lists external to the datagrid.  Sort of a click the row you want to see detail on kind of functionality.   Is there a way to click any row in the datagrid and simply return the value of my hidden ID field into a variable to use for my control population on the rest of the page????

Thanks All,

0
Comment
Question by:TechQT
3 Comments
 
LVL 10

Expert Comment

by:GoodJun
ID: 9725313
In the property builder for the grid. Columns-->select the column that you want user to click that will raise the event, type in "Select" in the Command name: textbox.

Then you can code the SelectedIndexChanged event when users clicked an item in this column.
0
 
LVL 5

Expert Comment

by:arvindb1
ID: 9728839
Do something like this

In your asp.net page

<asp:DataGrid id="DataGrid1" runat="server" AutoGenerateColumns="False">
                        <Columns>
                              <asp:TemplateColumn Visible="False" HeaderText="HiddenColumn">
                                    <ItemTemplate>
                                          <asp:Label runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.HiddenField") %>'>
                                          </asp:Label>
                                    </ItemTemplate>
                                    <EditItemTemplate>
                                          <asp:TextBox runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.HiddenField") %>'>
                                          </asp:TextBox>
                                    </EditItemTemplate>
                              </asp:TemplateColumn>
                              <asp:TemplateColumn HeaderText="FirstColumn">
                                    <ItemTemplate>
                                          <asp:Label runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.firstfield") %>'>
                                          </asp:Label>
                                    </ItemTemplate>
                                    <EditItemTemplate>
                                          <asp:TextBox runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.firstfield") %>'>
                                          </asp:TextBox>
                                    </EditItemTemplate>
                              </asp:TemplateColumn>
                              <asp:TemplateColumn HeaderText="SecondColumn">
                                    <ItemTemplate>
                                          <asp:Label runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.SecondColumn") %>'>
                                          </asp:Label>
                                    </ItemTemplate>
                                    <EditItemTemplate>
                                          <asp:TextBox runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.SecondColumn") %>'>
                                          </asp:TextBox>
                                    </EditItemTemplate>
                              </asp:TemplateColumn>
                              <asp:TemplateColumn HeaderText="Select">
                                    <ItemTemplate>
                                          <asp:LinkButton runat="server" Text="Button" CommandName="SelectClick" CausesValidation="false"></asp:LinkButton>
                                    </ItemTemplate>
                              </asp:TemplateColumn>
                        </Columns>
                  </asp:DataGrid>


and in your code behind
Private Sub DataGrid1_ItemCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles DataGrid1.ItemCommand
        If (e.CommandName = "Select") Then
            Dim hidfield As String
            hidfield = e.Item.Cells(0).Text()
        End If

    End Sub

Hope it helps
Arvind
0
 
LVL 6

Accepted Solution

by:
thomasdodds earned 250 total points
ID: 9734561
along with arvindb1's comment - you can set the DataKeyField for your data grid (instead of using the hidden field approach) in the databindings properties and then access it on the DataGrid_OnSelectedItemChanged Event by using

dim key as string = datagrid.datakeys(e.item.itemindex).tostring

both are acceptable ... just wanted to give you options ...
0

Featured Post

Webinar: Aligning, Automating, Winning

Join Dan Russo, Senior Manager of Operations Intelligence, for an in-depth discussion on how Dealertrack, leading provider of integrated digital solutions for the automotive industry, transformed their DevOps processes to increase collaboration and move with greater velocity.

Question has a verified solution.

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

For those of you who don't follow the news, or just happen to live under rocks, Microsoft Research released a beta SDK (http://www.microsoft.com/en-us/download/details.aspx?id=27876) for the Xbox 360 Kinect. If you don't know what a Kinect is (http:…
This article shows how to deploy dynamic backgrounds to computers depending on the aspect ratio of display
The Email Laundry PDF encryption service allows companies to send confidential encrypted  emails to anybody. The PDF document can also contain attachments that are embedded in the encrypted PDF. The password is randomly generated by The Email Laundr…

685 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