Обновление пользовательского элемента управления из другого пользовательского элемента управления через AJAX - PullRequest
1 голос
/ 10 июля 2010

Может быть у меня пердит мозг или что-то в этом роде, потому что кажется, что это должно быть довольно просто, но как обновить пользовательский элемент управления с другого пользовательского элемента управления через Ajax?пользовательские элементы управления, и когда я запускаю событие на стороне сервера для одного, я хочу обновить сетку для другого, чтобы он обновлял свои данные.

Я использую элементы управления Telerik, если это поможет.Событие флажка на первом пользовательском элементе управления вызывает повторную привязку RadGrid во втором пользовательском элементе управления, и у меня есть RadAjaxManager на странице ASPX и RadAjaxManagerProxy в двух пользовательских элементах управления.

Ответы [ 3 ]

2 голосов
/ 23 сентября 2010

Первый для меня Page.DataBind() не работает для меня.

Я объявил в UserControl

// Declare a delegate
public delegate void save_CommandEventHandler ();

//Event
save_CommandEventHandler SaveViewChanged public event;

// I run SaveViewChanged() from a click_button but it can run from anywhere
protected void save_Click (object sender, EventArgs e)
{
    UpdateDataInDatabase();

    SaveViewChanged ();
}

В page.aspx.cs код

protected override void OnInit (EventArgs e)
{
    base.OnInit (e);

    // UserControle1 is the Id of your UserControl declared in Aspx Page
    UserControle1.SaveViewChanged + =
       New UserControle.save_CommandEventHandler
       (Save_CommandEventHandler);
}

private void save_CommandEventHandler () {
    // Reload the gridView gvExpence to see the change operated in the user control
    gvExpence.DataSource =DataAcces.getAllCompanyExpence ();
    gvExpence.DataBind ();

    // update user control 2
    usercontrol2.updateView();
}
1 голос
/ 14 июля 2010

Вы можете попробовать использовать ajaxRequest или ajaxRequestWithTarget клиентские методы AjaxManager для инициирования вызова ajax. Более подробную информацию об этих методах можно найти в онлайн-документации Telerik: http://www.telerik.com/help/aspnet-ajax/ajxclientsideapi.html

1 голос
/ 12 июля 2010

Асинхронный обратный вызов обновит элемент управления, вызвавший обратную передачу, а также все родительские элементы управления его панели обновления.Если ваша сетка данных не обновляется в браузере после события, это может означать, что его метод обновления не вызывается

Попробуйте вызвать метод .update панели обновлений данных в флажке

...