2017-01-16 6 views
-1

Есть 2 DataList DataList2 и DataList3
DataList2 имеет DataList3 и Button и lblOrderID
DataList3 имеет lblQuantity
по щелчку на Button значения lblQuantity должны быть назначены qty
Когда я отлаживаю этот код, он показывает, что qty равно null?
Ошибка: Ссылка на объект не установлена ​​в экземпляр объекта.
Как получить доступ к наклейке внутри DataList, которая находится внутри другой DataList

protected void bremove_Click(object sender, EventArgs e) 
{ 
    Button remove = (Button)sender; 
    DataListItem row = remove.NamingContainer as DataListItem; 
    DataList dat = (DataList)row.FindControl("DataList3"); 
    Label qty = (Label)dat.FindControl("lblQuantity"); 
    Label id = (Label)row.FindControl("lblOrderID"); 
    string oid = id.Text; 
    string oqty = qty.Text; 
    sqlqueries.UpdateOrder(oid, oqty); 
    int k = sqlqueries.CancelOrder(oid); 
    if (k != 0) 
    { 
     Response.Redirect(Request.RawUrl); 
    } 
} 

ответ

0

Проблема заключается в этой строке:

Label qty = (Label)dat.FindControl("lblQuantity"); 

Хотя вы используете индивидуальный DataListItem найти вложенную DataList (с NamingContainer), вы затем продолжить, чтобы найти метку в DataList3 сам, а не элемент в DataList3.

Это должно быть

Label qty = (Label)dat.Items[row.ItemIndex].FindControl("lblQuantity");