گرفتن مقدار DataKey در RowDataBound و RowCommand گریدویو

فرض کنید این گریدویو رو دارین:

<asp:GridView ID="gvUsers" runat="server" AutoGenerateColumns="False"
            DataKeyNames="UserID" OnRowDataBound="gvUsers_RowDataBound"
            RowStyle-CssClass="Row" onrowcommand="gvUsers_RowCommand">
                    <Columns>                      
                        <asp:BoundField DataField="FirstName" HeaderText="First Name" ReadOnly="True" />
                        <asp:BoundField DataField="LastName" HeaderText="Last Name" ReadOnly="True" />     
                         <asp:BoundField DataField="Email" HeaderText="Email" ReadOnly="True" /> 
                         <asp:TemplateField>
                         <ItemTemplate>
                        <asp:Button runat="server" Text="SELECT" CommandName="Select" />                             
                        </ItemTemplate>
                         </asp:TemplateField>                       
                    </Columns>                   
                    <HeaderStyle BackColor="#F06300" Font-Bold="True" ForeColor="#FFFFCC" />
     </asp:GridView>

برای گرفتن مقدار DataKey در RowDataBound میتونید این کد رو بنویسید:

protected void gvUsers_RowDataBound(object sender, GridViewRowEventArgs e)
    {       
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            object objTemp = gvUsers.DataKeys[e.Row.RowIndex].Value as object;
            if (objTemp != null)
            {
                string id = objTemp.ToString();
               //باقی کد شما
            }
          
        }
    }

و برای گرفتن مقدار DataKey در RowCommand میتونید این کد رو بنویسید:

protected void gvUsers_RowCommand(object sender, GridViewCommandEventArgs e)
    {
      Control ctl = e.CommandSource as Control;
      GridViewRow CurrentRow = ctl.NamingContainer as GridViewRow;
      object objTemp = gvUsers.DataKeys[CurrentRow.RowIndex].Value as object;
      if (objTemp != null)
      {
          string id = objTemp.ToString();
          //باقی کد شما
      }
    }


امیدوارم مفید بوده باشه.

/ 0 نظر / 11 بازدید