2013-12-26 6 views
0

Я пытаюсь изучить состояние управления, когда я наткнулся на статью, в коде проектакак установить состояние управления в ASPX

http://www.codeproject.com/Articles/331981/A-Beginner-s-Tutorial-Understanding-ControlState-i

Но в этом примере только «Text» значение сохраняется в состоянии контроля, что, если я должен удержать их обоих? Так я попробовал этот код

protected override void OnInit(EventArgs e) 
    { 
     Page.RegisterRequiresControlState(this); 
     base.OnInit(e); 
    } 

    protected override object SaveControlState() 
    { 
     object[] state = new object[2]; // save the 2 properties 
     state[0] = Text; 
     state[1] = Text1; 

     return state; 
    } 

    protected override void LoadControlState(object savedState) 
    { 
     object[] state = (object[])savedState; 
     Text = (string)state[0]; 
     Text1 = (string)state[1]; 
    } 

Но это не похоже на работу .. Может кто-нибудь, пожалуйста, помогите мне ???

Заранее спасибо

+0

дорогого друг создать свойство с состоянием зрения и сохранить свое состояние в нем – Developerzzz

+0

что, если ViewState отключен? исправьте меня, если я ошибаюсь, так как я начал изучать эти вещи сейчас. –

+0

дорогой по умолчанию viewstate находится на – Developerzzz

ответ

0

Вы можете использовать словарь или список вместо массива

protected override object SaveControlState() 
{ 
    var state = new List<string>(); // save the 2 properties 
    state.Add(Text); 
    state.Add(Text1); 

    return state; 
} 

protected override void LoadControlState(object savedState) 
{ 
    var state = (List<string>)savedState; 
    Text = state[0]; 
    Text1 = state[1]; 
} 
+0

Nop, не работает :( –