Вот что самое обидное — просидишь много времени над проблемой, отчаишься, спросишь на форуме. А через полчаса, наконец, до самого дойдет как сделать.
Надо было просто биндить детальные данные по ходу заполнения мастер-таблицы. Примерно так:
protected void lvMaster_ItemDataBound(object sender, ListViewItemEventArgs e)
{
ListView lvDetail = (ListView) e.Item.FindControl("lvDetail");
GetDetailTableAdapter taDetail = new GetDetailTableAdapter();
string currID = ((Label) e.Item.FindControl("LabelID")).Text;
lvDetail.DataSource = taDetail.GetData(Convert.ToInt32(currID));
lvDetail.DataBind();
}
Конечно же, надо приведение типов делать через as и добавить сюда дополнительные проверки на null для надежности, но смысл понятен, я думаю