Я начал работать с делегатами на прошлой неделе, и я пытаюсь обновить асинхронный gridview на фоне. Все идет хорошо, никаких ошибок или подобных, но я не получаю результат после моего EndInvoke. кто-нибудь знает, что я делаю неправильно?Почему AsyncCallback не обновляет мой gridview?
Вот фрагмент кода:
public delegate string WebServiceDelegate(DataKey key);
protected void btnCheckAll_Click(object sender, EventArgs e)
{
foreach (DataKey key in gvTest.DataKeys)
{
WebServiceDelegate wsDelegate = new WebServiceDelegate(GetWebserviceStatus);
wsDelegate.BeginInvoke(key, new AsyncCallback(UpdateWebserviceStatus), wsDelegate);
}
}
public string GetWebserviceStatus(DataKey key)
{
return String.Format("Updated {0}", key.Value);
}
public void UpdateWebserviceStatus(IAsyncResult result)
{
WebServiceDelegate wsDelegate = (WebServiceDelegate)result.AsyncState;
Label lblUpdate = (Label)gvTest.Rows[???].FindControl("lblUpdate");
lblUpdate.Text = wsDelegate.EndInvoke(result);
}
Спасибо за ваш быстрый ответ. Я продолжил и сделал несколько вещей сам, и после прочтения вашего ответа стало ясно, что строки ничего не возвращают. Я попробую ваше предложение сейчас с обновлением объекта, чтобы сохранить метку метки. Редактировать: Я также обновил код выше до версии, имеющейся на данный момент. – Naruji
Я просто не знаю, что делать с Rows [...], может быть, я должен добавлять int и ++ каждый раз, когда это натолкнется. Но это просто уродливо, если вы спросите меня. – Naruji