Помогите разобраться как можно реализовать следующий механизм:
Имеется страница WinForm1.aspx, на которой имеется DataGrid. При нажатии на кнопку Edit в строке DataGrid'a хотелось бы, чтобы открылась другая WinForm2.aspx, в котрой содержалиь бы даные из соответствующей строки DataGrid'a. Эти данные можно изменять и делать с ними всё, что захочется. Потом при нажатии кнопки "OK", должна снова появляться WinForm1.aspx с тем же DataGrid' ом, но уже с изменённой строкой.
Я понимаю, что можно использовать Response.Redirect( "WinForm2.aspx?param1=1&Param2=2..."), но хотелось бы что-нибудь другое.
Re: Как передавать данные между WinForm' ами
От:
Аноним
Дата:
26.05.03 10:19
Оценка:
Здравствуйте, Аноним, Вы писали:
А>Помогите разобраться как можно реализовать следующий механизм: А>Имеется страница WinForm1.aspx, на которой имеется DataGrid. При нажатии на кнопку Edit в строке DataGrid'a хотелось бы, чтобы открылась другая WinForm2.aspx, в котрой содержалиь бы даные из соответствующей строки DataGrid'a. Эти данные можно изменять и делать с ними всё, что захочется. Потом при нажатии кнопки "OK", должна снова появляться WinForm1.aspx с тем же DataGrid' ом, но уже с изменённой строкой. А>Я понимаю, что можно использовать Response.Redirect( "WinForm2.aspx?param1=1&Param2=2..."), но хотелось бы что-нибудь другое.
Можно положить объект, хранящий данные строки датагрида в сессию по ключу Guid guid = Guid.NewGuid(); — вызовешь в странице с гридом WinForm1.aspx. Затем передашь этот Guid в качестве параметра странице Response.Redirect("WinForm2.aspx?key=" + guid.ToString());. В странице WinForm2.aspx спокойно считаешь из сессии по ключу данные, сделаешь с ними, что тебе нужно и вызовешь Session.Remove(Request["key"]); — чтобы память сессии не расходовать понапрасну.
Здравствуйте, Аноним, Вы писали:
А>Я понимаю, что можно использовать Response.Redirect( "WinForm2.aspx?param1=1&Param2=2..."), но хотелось бы что-нибудь другое.
а можно использовать Server.Transfer( "WinForm2.aspx" )...
Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, Аноним, Вы писали:
А>Можно положить объект, хранящий данные строки датагрида в сессию по ключу Guid guid = Guid.NewGuid(); — вызовешь в странице с гридом WinForm1.aspx. Затем передашь этот Guid в качестве параметра странице Response.Redirect("WinForm2.aspx?key=" + guid.ToString());. В странице WinForm2.aspx спокойно считаешь из сессии по ключу данные, сделаешь с ними, что тебе нужно и вызовешь Session.Remove(Request["key"]); — чтобы память сессии не расходовать понапрасну.
Не понятно зачем такие сложности? Зачем guid если у каждого клиента свой экземпляр session? Ведь при переходе между формами сессия сохранятется.
Здравствуйте, joker6413, Вы писали:
J>Здравствуйте, Аноним, Вы писали:
А>>Здравствуйте, Аноним, Вы писали:
А>>Можно положить объект, хранящий данные строки датагрида в сессию по ключу Guid guid = Guid.NewGuid(); — вызовешь в странице с гридом WinForm1.aspx. Затем передашь этот Guid в качестве параметра странице Response.Redirect("WinForm2.aspx?key=" + guid.ToString());. В странице WinForm2.aspx спокойно считаешь из сессии по ключу данные, сделаешь с ними, что тебе нужно и вызовешь Session.Remove(Request["key"]); — чтобы память сессии не расходовать понапрасну.
J>Не понятно зачем такие сложности? Зачем guid если у каждого клиента свой экземпляр session? Ведь при переходе между формами сессия сохранятется.
J>Игорь
А затем, что клиент может открыть в броузере несколько страниц WinForm1.aspx, и в каждой странице выбрать в гриде совершенно разные элементы — т.о. в сессию их нужно помещать по разным ключам — самый простой вариант — использовать Guid.
Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, joker6413, Вы писали:
J>>Здравствуйте, Аноним, Вы писали:
А>>>Здравствуйте, Аноним, Вы писали:
А>>>Можно положить объект, хранящий данные строки датагрида в сессию по ключу Guid guid = Guid.NewGuid(); — вызовешь в странице с гридом WinForm1.aspx. Затем передашь этот Guid в качестве параметра странице Response.Redirect("WinForm2.aspx?key=" + guid.ToString());. В странице WinForm2.aspx спокойно считаешь из сессии по ключу данные, сделаешь с ними, что тебе нужно и вызовешь Session.Remove(Request["key"]); — чтобы память сессии не расходовать понапрасну.
J>>Не понятно зачем такие сложности? Зачем guid если у каждого клиента свой экземпляр session? Ведь при переходе между формами сессия сохранятется.
J>>Игорь
А>А затем, что клиент может открыть в броузере несколько страниц WinForm1.aspx, и в каждой странице выбрать в гриде совершенно разные элементы — т.о. в сессию их нужно помещать по разным ключам — самый простой вариант — использовать Guid.
Логично... Надо было мыслить шире...
Re[5]: Как передавать данные между WinForm' ами
От:
Аноним
Дата:
05.08.03 00:42
Оценка:
Здравствуйте, joker6413, Вы писали:
J>Здравствуйте, Аноним, Вы писали:
А>>Здравствуйте, joker6413, Вы писали:
J>>>Здравствуйте, Аноним, Вы писали:
А>>>>Здравствуйте, Аноним, Вы писали:
А>>>>Можно положить объект, хранящий данные строки датагрида в сессию по ключу Guid guid = Guid.NewGuid(); — вызовешь в странице с гридом WinForm1.aspx. Затем передашь этот Guid в качестве параметра странице Response.Redirect("WinForm2.aspx?key=" + guid.ToString());. В странице WinForm2.aspx спокойно считаешь из сессии по ключу данные, сделаешь с ними, что тебе нужно и вызовешь Session.Remove(Request["key"]); — чтобы память сессии не расходовать понапрасну.
J>>>Не понятно зачем такие сложности? Зачем guid если у каждого клиента свой экземпляр session? Ведь при переходе между формами сессия сохранятется.
J>>>Игорь
А>>А затем, что клиент может открыть в броузере несколько страниц WinForm1.aspx, и в каждой странице выбрать в гриде совершенно разные элементы — т.о. в сессию их нужно помещать по разным ключам — самый простой вариант — использовать Guid.
J>Логично... Надо было мыслить шире...