2013-02-01 104 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; } } –

相關問題