Здравствуйте, Sun_Original, Вы писали:
S_O>Как лучше поступить в этом случае?
Например, перед постбэком скриптом организовывать соотв. Event, хотя я бы поступил как написано ниже
S_O>Я пытался на клиентt записывать значение SelectedIndex в HiddenField а на
S_O>сервере читать его при помощи Page.Request["..."] но толком ничего не вышло.
А почему? По-моему, оптимальное решение.
В инфракрасный прицел мы видны, как небесный ОМОН
Здравствуйте, Sun_Original, Вы писали:
S_O>Я пытался на клиентt записывать значение SelectedIndex в HiddenField а на
S_O>сервере читать его при помощи Page.Request["..."] но толком ничего не вышло.
Раскажи подробнее как делал, видимо есть ошибки, использование HiddenFieldHelper'ов — обычная практика
... << RSDN@Home 1.1 beta 2 >>
Здравствуйте, mogadanez, Вы писали:
M>Раскажи подробнее как делал, видимо есть ошибки, использование HiddenFieldHelper'ов — обычная практика
кусок кода:
public int SelectedIndex{
get{
object o=Page.Request["SelectedIndex"];
return(o==null?0:int.Parse(o.ToString()))
}
set{
Page.RegisterHiddenField("SelectedIndex",value);
}
}
Здравствуйте, Sun_Original, Вы писали:
S_O>Здравствуйте, mogadanez, Вы писали:
M>>Раскажи подробнее как делал, видимо есть ошибки, использование HiddenFieldHelper'ов — обычная практика
S_O>кусок кода:
S_O>S_O>public int SelectedIndex{
S_O>get{
S_O>object o=Page.Request["SelectedIndex"];
S_O>return(o==null?0:int.Parse(o.ToString()))
S_O>}
S_O>set{
S_O>Page.RegisterHiddenField("SelectedIndex",value);
S_O>}
S_O>}
S_O>
хм.... довольно странно... ну ладно...
это не все.. покажи для полной картины куски, в которых кладешь что либо в данное поле и считываешь в него....
P.S.
по твоему коду получается, что если на сервере изначально не установить SelectedIndex, то хелпер на клиента не попадет....
... << RSDN@Home 1.1 beta 2 >>
Здравствуйте, mogadanez, Вы писали:
M>хм.... довольно странно... ну ладно...
M>это не все.. покажи для полной картины куски, в которых кладешь что либо в данное поле и считываешь в него....
M>P.S.
M>по твоему коду получается, что если на сервере изначально не установить SelectedIndex, то хелпер на клиента не попадет....
//Определение контрола
public class Tab : Control,INamingContainer
{
...
public int SelectedIndex{
get{
object o=Page.Request["SelectedIndex"];
return(o==null?0:int.Parse(o.ToString()));
}
set{
Page.RegisterHiddenField("SelectedIndex",value);
}
}
....
//хелпер попадает на клиента в этом месте:
protected override void OnPreRender(EventArgs e)
{
base.OnPreRender (e);
Page.RegisterHiddenField("SelectedIndex",this.SelectedIndex.ToString());
}
}
Большое спасибо всем кто откликнулся — на самом деле все
корректно работает ...
Меня сбила с толку следующая ситуация:
Например — я нажимаю кнопку (System.Web.UI.WebControls.Button) расположенную
на второй закладке (SelectedIndex=1). В обработчике (GoToPage3) этого события (Click)
я пишу:
public void GoToPage3(object sender, EventArgs e){
//Tab1 - мой контрол (Tab Tab1=new Tab();)
Tab1.SelectedIndex=2; //переходим на третью закладку
}
по ходу по событию OnLoap я вывожу ТЕКУЩЕЕ состояние SelectedIndex контрола Tab1:
...
Page.Response.Write(String.Format("Page load - Selected index Tab1 is {0}",Tab1.SelectedIndex));
...
И сильно удивляюсь почему выводиться строка "Page load — Selected index Tab1 is 1".
Естественно что сначала вызывается обработчик события Load (а в это время
Tab1.SelectedIndex=1 так как PostBack пришел со второй закладки!) и
только после этого обрабатывается события нажатия кнопки (GoToPage3)
где и происходит изменение номера выбраной закладки.
Я прав?