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);
}
{
GridViewRow row = gvBasket.Rows[e.RowIndex];
DropDownList ddlAmount = row.FindControl("ddlAmount") as DropDownList;
string strAmount = ddlAmount.SelectedValue.ToString();
sdsBasket.UpdateParameters.Add("Amount", strAmount);
}
Tags