Сохранение содержимого html-элемента управления с тегом сервера runat - PullRequest
0 голосов
/ 11 января 2011

У меня есть эта проблема - я работаю над ASP.NET AJAX-приложением на сервере без .net 3.5, что означает, что я не могу использовать ListView (BOO!).

Я решил простосделать некрасивый способ создания таблицы и присвоения tbody идентификатора и тега сервера runat и поместить HtmlControls внутрь из codebehind (btw - это пользовательский контроль, на случай, если он что-то изменит).все работает нормально - до тех пор, пока страница не выполнит частичную обратную передачу - и все элементы исчезнут, так как тег является сервером runat, я предполагаю, что он должен быть повторно заполнен при загрузке страницы.

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

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

Ответы [ 2 ]

0 голосов
/ 11 января 2011

Если ваша проблема с сохранением состояний.ControlState - как раз то место, где можно сделать это ..

Рассмотрите это из msdn (http://msdn.microsoft.com/en-us/library/1whwt1k7.aspx)

или попробуйте следующий код.

    protected override object SaveControlState()
    {
        object[] ControlStateData = new object[];
        //save your data like  ControlStateData[0] = ActivePage;
        return ControlStateData;
    }

    protected override void LoadControlState(object savedState)
    {
        object[] ControlStateData = savedState as object[];
        //Load your data like ActivePage = (int) ControlStateData[0];
        base.LoadControlState(ControlStateData[2]);
    }

    //Dont forget to add this procedure
    protected override void OnInit(EventArgs e)
    {
        base.OnInit(e);
        Page.RegisterRequiresControlState(this);
    }
0 голосов
/ 11 января 2011

Вы должны воссоздать все элементы управления, созданные динамически в событии Page_Init, и повторно заполнить их в Page_Load.Вы также можете обратиться к этой статье http://www.4guysfromrolla.com/articles/092904-1.aspx.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...