Лучший отвечающий
Координаты контролов в ASP.NET

Вопрос
-
Как можно определить координаты контролов в ASP.NET и получить эти значения в коде C#?10 июля 2012 г. 7:03
Ответы
-
Тут пока, что только чистый JavaScript, без jQuery. Если хотите более лушее решение используйте
<input id="inputId" type="hidden" value="" />
скрытые поля вместо cookie, так как клиент просто напросто может отключить их. Понятие координат на клиенте и сервере разное. Тут у Вас используется смещение относительно окна браузера, а в .aspx разметке элемент можетт находиться на n-ном уровне, и что-такое offsetTop он и знать не знает. Поэтому я и предложил координатами манипулировать на клиенте.
- Изменено YatajgaEditor 10 июля 2012 г. 7:42
- Предложено в качестве ответа Abolmasov DmitryModerator 10 июля 2012 г. 11:59
- Помечено в качестве ответа Abolmasov DmitryModerator 10 июля 2012 г. 12:00
10 июля 2012 г. 7:42Модератор -
Вот нашли решение, подозрительно простое
Javascript:
document.cookie="coord="+document.getElementById("TextBox1").offsetTop+";";
Сдесь используется Jquery.
C#:
HttpContext.Current.Request.Cookies["coord"].Value;
- Предложено в качестве ответа Abolmasov DmitryModerator 10 июля 2012 г. 11:59
- Помечено в качестве ответа Abolmasov DmitryModerator 10 июля 2012 г. 12:00
10 июля 2012 г. 7:32
Все ответы
-
Никак. Но это не значит, что не возможно, просто это не простая задача. На ASP.NET используются обыные контролы Html, определить координаты которых в сервеном коде невозможно, разве только рендерить страницу, читать их на клиенте используя JavaScript, потом отправлять их на сервер и читать их в C# коде, но это уже шаманство. Если использовать родные контролы ASP.NET (которые рендерят тот же Html), то можно читать и манипулировать их свойствами, ведь это обычные классы. Но опять, тут используется столько уровней вложенности, что довести это дело до конца, мягко говоря "сложно". Вообще, такие вещи делаются на клиенте, при помощи JavaScript, страница грузится а потом клиентский сценарий делает своё дело. А с чем связана такая задача, может стоит пересмотреть её решение?10 июля 2012 г. 7:17Модератор
-
Вот нашли решение, подозрительно простое
Javascript:
document.cookie="coord="+document.getElementById("TextBox1").offsetTop+";";
Сдесь используется Jquery.
C#:
HttpContext.Current.Request.Cookies["coord"].Value;
- Предложено в качестве ответа Abolmasov DmitryModerator 10 июля 2012 г. 11:59
- Помечено в качестве ответа Abolmasov DmitryModerator 10 июля 2012 г. 12:00
10 июля 2012 г. 7:32 -
Тут пока, что только чистый JavaScript, без jQuery. Если хотите более лушее решение используйте
<input id="inputId" type="hidden" value="" />
скрытые поля вместо cookie, так как клиент просто напросто может отключить их. Понятие координат на клиенте и сервере разное. Тут у Вас используется смещение относительно окна браузера, а в .aspx разметке элемент можетт находиться на n-ном уровне, и что-такое offsetTop он и знать не знает. Поэтому я и предложил координатами манипулировать на клиенте.
- Изменено YatajgaEditor 10 июля 2012 г. 7:42
- Предложено в качестве ответа Abolmasov DmitryModerator 10 июля 2012 г. 11:59
- Помечено в качестве ответа Abolmasov DmitryModerator 10 июля 2012 г. 12:00
10 июля 2012 г. 7:42Модератор -
А как часто у клиента могут быть отключены cookies? Возможно этим можно пренебречь?10 июля 2012 г. 7:54
-
Обычно, не часто. Если это не критично, то используйте. Но скрытые поля для этого случая подходят лучше.10 июля 2012 г. 7:56Модератор
-
Не забывайте отмечать ответы если проблема решена. Спасибо.
Для связи [mail]
10 июля 2012 г. 12:02Модератор