четвер, 8 грудня 2011 р.

[Поле для ввода пароля - пустое!]
Суть проблеммы - поле TextBox (type="password") - на админ-странице пустое, хотя на сервере значения текста устанавливаеться. Пустое поле наводит на пользователя мысль, что пароль не установлен вообще, отсюда вечные проблемы, связаные з желанием пользователя всунуть свои ручки не туда куда надо, и сделать таким макаром доброе дело... скрытие пароля из текстбокса - это фитча, умышленно внесённая разработчиками, призванная, в прынципе повысить безопасность страниц, предотвращая кражу пароля, простым просмотром исходника страницы в браузере. Все-таки заставить показать звёздочки в поле пароля можно применив следующий код:
[myTextBox.Attributes.Add("value","myRobustPassword");]

понеділок, 21 листопада 2011 р.

Вызов .NET кода из ASP страницы
Итак, возникла необходимость вызывать функционал, написанный на .NET из существующей asp-страницы. Для того, чтоб работал следующий стандартный VB 6 код:
<%@Language="VBScript" %> <% Dim testObj Set testObj = server.createObject("testlib.Test") Response.Write(testObj.TestFunc()) Response.End() %>
надо сделать следующее:

1. Скомпилировать сборку, с включенными флагами Properties -> Application -> Assembly Information -> Make Assembly COM-visible и Properties -> Signing -> Sign the assembly (создаем новый или выбираем существующий файл строгого имени в выпадающем списке 'Choose a strong name key file')
 2. Создаем библиотеку типов для свежескомпилированной сборки: regasm testlib.dll /tlb:testlib.tlb
 3. Регистрируем сборку: regasm testlib.dll
 4. Помещаем её в GAC: gacutil /i testlib.dll (К сожалению у меня на этом шаге гакутыл постоянно падал, чесно говоря, что случился Unknown Error, по-этому пришлось внести её туда вручную - открыл проводником папку C:/Windows/Assemblies и просто перетащить мышкой мою сборку)
 5. Создать COM сервер, и поместить в него приложение - нашу библиотеку. Всё. На этом этапе можно смело создавать тестовую страничку, подымать локальный веб сервер, и смотреть чего получилось :-)

понеділок, 17 жовтня 2011 р.

Округление числа в xslt

Округляем число в xslt
<xsl:value-of select="floor(sum(./ClientSite/@RosteredMins) div 60)" />
В данном примере, если сумма аттрибутов будет равна, к примеру 96, в результате преобразования получим число 1 (наименьшее целое из 96 div 60, которое почему-то равно 1,6 :-) )

пʼятниця, 7 жовтня 2011 р.

Разрыв страницы средствами CSS (печать)

Как организовать разрыв страницы с помощью CSS
<div style="page-break-after:always;">Какой-то блок контента</div>
<div style="page-break-after:always;">Какой-то другой блок контента</div>


В данном примере, другой блок контента будет размещен на новой странице - во время печати.

четвер, 8 вересня 2011 р.

Флаги Enum в .NET

Установка/проверка значений битовых флагов VB.NET:
_
Enum Colors As Short
Black = 0
Red = 1
Green = 2
Blue = 4
End Enum

Sub SomeFunc()
'Устанавливаем значение
Dim _MyFlags As Colors = Colors.Red Or Colors.Blue

'Проверяем
If (_MyFlags And Colors.Green) = Colors.Green Then
'Зелёный установлен, делаем что-то
Else
'Зелёный не установлен. Делаем что-то другое (в этом примере будет исполнена именно эта ветка)
End If
End Sub

четвер, 10 лютого 2011 р.

Программно добавляем ссылку на таблицу стилей

Добавка ссылки на стили - на ASP.NET страницу
Dim cssLink As New HtmlLink()
cssLink.Href = ResolveClientUrl("./styles/colorpicker.css")
cssLink.Attributes.Add("rel", "stylesheet")
cssLink.Attributes.Add("type", "text/css")
cssLink.Attributes.Add("media", "all")
Me.Page.Header.Controls.Add(cssLink)

Обьект Session в HttpHandler

Обьект Session в HttpHandler

Суть проблеммы: Session равно null в HttpHandler. После непродолжительных изысканий оказалось, что в зависимости от нужд, сесию можно сделать видимой полностью, или "только для чтения", унаследовав класс своего хэндлера от одного из интерфейсов, соответственно: IReadOnlySessionState или IRequiresSessionState
public class ConciergeImageHttpHandler : IHttpHandler, IReadOnlySessionState
{}

пʼятниця, 7 січня 2011 р.

Linq To Sql - Хранимые Процедуры - такой в наших списках не значится...

Проблемма: при добавлении некоторых хранимых процедур в .dbml файл, генерируеться метод-обёртка с неправильной сигнатурой