我有以下代码:
protected void gv_AfterPerformCallback(object sender, ASPxGridViewAfterPerformCallbackEventArgs e)
{
if(e.CallbackName == "UPDATEEDIT")
{
ASPxGridView gv = (ASPxGridView)sender;
GridViewDataColumn col = gv.Columns[0] as GridViewDataColumn;
ASPxTextBox txt = gv.FindEditRowCellTemplateControl(col, "test") as ASPxTextBox;
}
}
在此代码中,gv
已定义,并找到col
。但是,在运行FindEditRowCellTemplateControl
部分时,它会为文本框返回null
。文本框肯定存在,我知道这个,因为这段代码曾经工作过,并没有被触及,但如果我更改if
语句以查找e.CallbackName == "CANCELEDIT"
,代码也会按预期工作。在同一个块中还有其他控件的调用,但没有一个控件返回有效的控件。
在工作代码和不工作之间唯一改变的是,我更改了同一网格中另一列中另一个控件的BackColor
。我已经改回来了,因为我想知道这是不可思议的问题。
会发生什么事?为什么txt
null
e.CallbackName == "UPDATEEDIT"
e.CallbackName == "CANCELEDIT"
,但在Products.joins(:category_product_relations).
where( category_product_relations: {category_id: [1,2,3]} )
时正确初始化?