如何从asp.net中的gridview获取选定的行字段

时间:2013-02-01 09:21:01

标签: asp.net gridview

我正在使用Gridview控件开发一个aspx页面。我在这里粘贴我的代码

                                                                                                                                                                              

                    <Columns>

                     <asp:TemplateField HeaderText="Request">
                    <ItemTemplate>
                    <asp:LinkButton ID="sendrequest" runat="server" Text="SendRequest" CommandName="SendRequest"></asp:LinkButton>
                    </ItemTemplate>
                    </asp:TemplateField>

                    <asp:TemplateField HeaderText="FirstName">
                    <ItemTemplate>
                    <asp:Label ID="fname" runat="server" Text='<%#Eval("fname") %>'></asp:Label>
                    </ItemTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField HeaderText="LastName">
                    <ItemTemplate>
                    <asp:Label ID="lname" runat="server" Text='<%#Eval("lname") %>'></asp:Label>
                    </ItemTemplate>
                    </asp:TemplateField>

                    <asp:TemplateField HeaderText="EMailID">
                    <ItemTemplate>
                    <asp:Label ID="email" runat="server" Text='<%#Eval("email") %>'></asp:Label>
                    </ItemTemplate>
                    </asp:TemplateField>

                    <asp:TemplateField HeaderText="Image">
                    <ItemTemplate>
                    <asp:Image ID="img" runat="server" ImageUrl='<%#Eval("imagepath") %>' Width="100" Height="100" />
                    </ItemTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField HeaderText="Request">
                    <ItemTemplate>
                    <asp:LinkButton ID="viewprofile" runat="server" Text="ViewFullProfile" CommandName="ViewProfile"
                    a href ='<%#"ViewProfile.aspx?email="+DataBinder.Eval(Container.DataItem,"email") %>'>
                    </asp:LinkButton>
                    </ItemTemplate>
                    </asp:TemplateField>


                    </Columns>



                </asp:GridView>

我的问题是我需要LinkBut​​ton(SendRequest)点击该行电子邮件值的电子邮件值

请帮帮我

1 个答案:

答案 0 :(得分:2)

处理GridView RowCommand事件:

protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e) 
{ 
    if (e.CommandName.Equals("SendRequest")) 
    { 
       string strEmail = GridView1.DataKeys[Convert.ToInt32(e.CommandArgument)].Value.ToString();
       lbltest.Text = strEmail; 
    } 
} 

假设您将DataKeyNames设置为电子邮件。 您还必须将 sendRequest 按钮的CommandArgument设置为

CommandArgument="<%# Container.DataItemIndex %>