2017-01-16 62 views
-1

有2 DataList控件DataList2DataList3
DataList2DataList3ButtonlblOrderID
DataList3lblQuantity
Click上的lblQuantityButton价值应该分配给qty
当我调试这段代码时,它显示qty为空?
错误:未将对象引用设置为对象的实例。
如何访问内部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");