in gridview add dropdownlist and give its datasource sqldatasource. and a hidden field which bind to your query by which you bind.
by sqldatasource bind list. and on datarowbound set the selected value of dropdownlist by hidden field value. like that:-
<itemtemplate>
<asp:dropdownlist runat="server" id="ddl" width="100%" datatextfield="FieldName" datavaluefield="FieldValue" appenddatabounditems="true" datasourceid="SqlDataSource1" xmlns:asp="#unknown">
<asp:listitem text="" value="0" selected="True" />
</asp:dropdownlist>
<asp:hiddenfield runat="server" value="<%# Bind("FieldId") %>" id="DDL1" xmlns:asp="#unknown" />
</itemtemplate>
<asp:SqlDataSource ID="SqlDataSource1" SelectCommandType="StoredProcedure" SelectCommand="usp_Name"
runat="server">
<SelectParameters>
<asp:Parameter Name="ParamName" DefaultValue="0" />
</SelectParameters>
</asp:SqlDataSource>
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
DropDownList ddl = ((DropDownList)e.Row.FindControl("ddl"));
HiddenField hdn = ((HiddenField)e.Row.FindControl("DDL1"));
ddl.SelectedValue = hdn.value
}
}