2013-02-01 67 views
1

我正在开发一个带有Gridview控件的aspx页面。我在这里贴上我的代码如何从asp.net中的gridview中获取选定的行字段

    <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将)点击该行的电子邮件值的电子邮件值

请帮我

回答

2

处理GridVie w^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作为电子邮件。 您还必须设置CommandArgument的sendRequest将按钮来

CommandArgument="<%# Container.DataItemIndex %> 
+0

我想上面的代码,但得到错误索引超出范围。必须是非负数且小于集合的大小。 参数名称:索引 –

+0

你能提供gridview的完整代码吗? –

+0

保护无效GridView1_RowCommand(对象发件人,GridViewCommandEventArgs E) { 如果(e.CommandName.Equals( “sendRequest将”)) { 串strEmail = GridView1.DataKeys [Convert.ToInt32(e.CommandArgument)]。Value.ToString (); lbltest.Text = strEmail; } } –

相关问题