Какую домашнюю страницу можно задать, чтобы оптимально организовать свою работу? 

Многие ставят себе домашней страницей поисковую форму Гугла или Яндекса (mail.ru, rambler.ru и т.д.). Более продвинутые пользователи предпочитают создавать собственную страницу, для этого есть множество средств, начиная от Google Personal, до блогов или собственных сайтов.

Лично я использую в качестве домашней страницы - html файл, который находится на самом компьютере (и на домашнем и на рабочем).

Моя домашняя страница - кликните чтобы открыть

В результате - домашняя страница загружается очень быстро, ее можно легко отредактировать (конечно для того кто знает HTML). Под рукой все наиболее часто используемые ресурсы. Понятно, что тогда нет никакой серверной обработки, но есть клиентский скрипт, в котором тоже можно много чего сделать.

У меня этот home page указан во всех четырех браузерах, которые приходится использовать по работе. Это удобно еще тем, что не привязываешься собственно к меню, или избранным/ссылкам каждого конкретного браузера.

Небольшая подсказка - если вы захотите использовать этот файл как home-page, при открытии его непосредственно с локального диска Internet Explorer выдает предупреждение, что файл содержит скрипт и может быть небезопасен. При этом если этот же файл открывается по сети, либо через интернет, таких предупреждений нет (при настройках по умолчанию). Для того чтобы предупреждение не выдавалось, можно например открывать его через URL \\pc-name\c$\HomePage\default.html, где pc-name - имя компьютера. Вместо c$, доступного администратору, можно использовать любую расшаренную папку, тогда предупреждения тоже не будет.

Загрузить страницу с иконками: my-homepage.zip (17,11 kb)


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

Страницы ссылающиеся сами на себя нежелательны и путают пользователей. Якоб Нильсен пишет про это в своей статье 10 главных ошибок веб-дизайна 2003 года.

Обычный путь решения этой задачи в ASP.NET, это поставить PlaceHolder's и в зависимости от того, является страница текущей или нет - показывать нужный текст или ссылку. Или можно например указать пустое значение ссылки href для тэга <A>, тогда браузер не будет отображать ее как ссылку (правда не уверен насчет кроссплатформенности такого решения). Заниматься всем этим достаточно скучно и нудно.

Собственно для решения этой задачи я создал достаточно простой контрол MutableHyperLink, который наследуется от стандартного контрола ASP.NET HyperLink. Этот контрол автоматически определяет страницу на которой он находится, и если ссылка ведет на эту же страницу - отображается тэг SPAN с таким же содержимым, как если бы это была ссылка. Дополнительно можно задать отдельный класс стилей для SPAN, что позволяет выделить этот элемент.

Пример использования этого контрола можно посмотреть на этом сайте, кликните например на ссылку "Архив" или "Написать мне".

 
Пример выделенной ссылки.

Краткая документация по контролу MutableHyperLink

Помимо стандартных, унаследованных от класса HyperLink, доступны следующие свойства:

SpanCssClass - класс CSS, который будет задан у контрола, если он отображается как SPAN.

ParameterMatch - свойство которое задает, должны ли совпадать параметры URL (Url Parameters) текущей страницы, с теми которые заданы в свойстве NavigationUrl, для того что бы считать страницу текущей.

IgnoreCase - свойство, которое задает, игнорировать регистр букв при сравнении URL текущей страницы с NavigationUrl, или учитывать.

DefaultPage - свойство, которое задает текущую дефолтную страницу (Default Page), если ссылка ведет не на файл, а на директорию с некой страницой по умолчанию, в ASP.NET обычно это 'default.aspx'

ForceSpan - всегда генерировать тэг SPAN, независимо от того, какая страница текущая.

ForceLink - всегда генерировать тэг A, независимо от того, какая страница текущая.

Установка и подключение к проекту

Скачайте и разархивируйте приложенный к заметке файл. Он содержит проект на C#, который компилируется в .dll содержащий нужный контрол.

Подключается контрол стандартным способом - можно включить проект в ваш Solution, добавить reference на проект и указать его в файле Web.Config:

   <add namespace="maqdev.Web.UI.WebControls" tagPrefix="maqdev" assembly="maqdev.MutableHyperLink"/>

После чего вы можете его добавить на свою страницу, например так:

   <maqdev:MutableHyperLink NavigateUrl="~/contact.aspx" Text="Contact" SpanCssClass="SelectedLink" runat="server" />

Скачать проект с контролом: maqdev.MutableHyperLink.zip


maqdev.com

сообщения с ограниченным временем жизни