Динамический контент в Gridview - PullRequest
0 голосов
/ 13 марта 2010

У меня есть сетка с несколькими столбцами, я хочу добиться следующего:
Если пользователь НЕ авторизован, выведите обычные столбцы.
Если пользователь авторизован: задайте событие наведения курсора для текста первого столбца и отобразите некоторые кнопки (которые недоступны для НЕ авторизованных пользователей) во втором столбце, когда пользователь наводит курсор мыши (используя JavaScript) на первый столбец.

У меня 2 трудности:

Первый, где и когда я должен создать кнопки?
У меня есть 2 варианта,
Я могу создать эти кнопки во время разработки, в шаблоне gridviews и просто установить значение Visible в значение false, а затем в codebehind установить его в значение true, если пользователь авторизован.
Второй вариант - динамическое создание этих кнопок в событии gridview_RowCreated (или любом другом событии), если пользователь авторизован.

Вторая трудность заключается в настройке события javascript для отображения кнопок, событие должно быть добавлено, только если пользователь авторизован!
Обратите внимание, что событие и кнопки должны иметь какое-то совпадение идентификатора для функции Javascript, чтобы знать, что следует скрывать / показывать при срабатывании события.

Что мне делать, какова лучшая практика?
Я знаю, что это длинный вопрос, но, пожалуйста, попробуйте помочь:)

Ответы [ 2 ]

0 голосов
/ 13 марта 2010

Что вы хотите сделать, так это использовать элемент управления HoverMenu из ASP.Net Ajax Toolkit. Это будет обрабатывать весь JavaScript для вас, чтобы отобразить и скрыть кнопки мыши и мыши. Вы должны включить или отключить HoverMenu в своем коде, чтобы обработать вашу авторизацию.

0 голосов
/ 13 марта 2010

Если проблема заключается в условной авторизации кнопок, то не выводит их со стороны сервера, если пользователь не авторизован . То есть не визуализируйте кнопки и не показывайте / не скрывайте их с помощью JavaScript, потому что злоумышленники могут манипулировать JavaScript на стороне клиента, чтобы показать скрытые кнопки из DOM браузера, и это вне вашего контроля. Это увеличивает вероятность того, что они получат доступ, если проверки вашего сервера также не будут выполнены.

Используйте выделенный код, как вы упомянули, но условно отправляйте кнопки на стороне клиента. Если вы отправляете их, они видны, а если нет, их нет, потому что их там нет, чтобы показать. Тогда вам не нужно дополнительно поиграть с JavaScript для этого усилия.

Это предполагает, что вы использовали аутентификацию Webforms или подобный механизм, чтобы вы знали, авторизован ли пользователь со стороны сервера, и вы можете проверить его там и принять соответствующие решения в своем коде на его основе.

Может быть, я не понимаю полного контекста того, чего вы пытаетесь достичь, но я пытаюсь передать проблем безопасности и рассуждений по этому поводу. Есть много мест, где можно использовать JavaScript при разработке, но на этот раз это может быть неправильный выбор.

Однако ... если кнопки на самом деле не являются проблемой безопасности и недопустимый пользователь, получивший к ним доступ, не нанесет вреда в общей схеме, то забудьте все вышеперечисленное.

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