RadGrid - значения не сохраняются после обратной передачи - PullRequest
0 голосов
/ 04 августа 2011

RadGrid генерируется со стороны сервера с полями шаблона. NeedDataSource () - это то, что используется для привязки данных.При каждой обратной передаче RadGrid теряет значения, так как NeedDataSource не вызывается. Ручное выполнение Rebind () для Onload () также не помогает.

Структура сетки определяется в OnLoad () и выполняется один раз при включении! IsPostback ()

Я помню, что где-то читал, что при построении сеткидинамически структурируясь со стороны сервера, сетка «должна» быть Rebind () при каждой обратной передаче.

Разве RadGrid не поддерживает значения при обратной передаче?Это как-то связано с ViewState?

Ответы [ 3 ]

2 голосов
/ 05 августа 2011

Событие «NeedDataSource» должно происходить и на обратных передачах.Вы можете попробовать настроить свою страницу с помощью RadAjaxManager, я полагаю.Ваша сетка загружает данные при первой загрузке?Попробуйте просмотреть демонстрационные страницы, которые они настроили в сетках, так как это один из лучших примеров различных способов их настройки.

1 голос
/ 24 августа 2013

В соответствии с документацией radgrid, если вы создаете сетку программно, вам необходимо создать ее в методе OnInit: http://www.telerik.com/help/aspnet-ajax/grid-programmatic-creation.html (Создание RadGrid в разделе Page_Init) OnLoad можно использовать, когда сетка частично добавлена ​​в разметку. Надеюсь, это поможет.

0 голосов
/ 21 июня 2013

создать функцию для привязки данных к Radgrid

private void BindData()
    {
    //Get data from database
        //DBData can be datatable or list
        RadGrid1.DataSource = DBData;
    }

затем вызовите событие загрузки страницы

    protected void Page_Load(object sender, EventArgs e)
    {
        try
        {
            if (!IsPostBack)
            {
                BindData();
            }
        }
        catch (Exception ex)
        {

        }
    }

тогда вы можете использовать ту же функцию в событии NeedDataSource

    protected void RadGrid_NeedDataSource(object sender, GridNeedDataSourceEventArgs e)
    {
        BindCommentData();
    }
...