Problem med att hitta kontroll i GridView

Detta är ganska irriterande. Försöker använda ControlParameter för att hitta en DropDownList i min GridView. Men måste då ange det fullständiga Id enligt följande.

<asp:ControlParameter Name="Amount" ControlID="ctl00$mainContentPH$gvBasket$ctl03$ddlAmount" PropertyName="SelectedValue" />

Då kan jag bara komma åt en viss rad, i exemplet ovan den som har index 3. Detta är ju fullkomligt idiotiskt, det måste finnas en lösning. Här finns en artikel där en av läsarna skriver om samma problem i kommentarerna.

En alternativ lösning
Jag har inte kommit på hur man kan göra med problemet ovan. Det är nog helt enkelt så naming containers fungerar i Asp.Net. Istället gjorde jag en metod som hittar DropDownListan och lägger till parametern från koden bakom.

protected void gvBasket_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
GridViewRow row = gvBasket.Rows[e.RowIndex];
DropDownList ddlAmount = row.FindControl("ddlAmount") as DropDownList;
string strAmount = ddlAmount.SelectedValue.ToString();
sdsBasket.UpdateParameters.Add("Amount", strAmount);
}