Хостинг Сайт Домены Скрипты OC MySQL Разное
© TyPoStI.NeT 2007-2008
Реклама на сайте
Навигация
Сатистика
Сейчас на сайте:
Пользователей: 0
Отсутствуют.

Роботов: 0
Отсутствуют.

Гостей: 1
Всех: 1

20ка посетивших:
Пользователей: 20
15bigandrew1526devil26
Alexei1980czona346
fhbhjasdgfrollik21
gisteClittygrad1ent
grandmasterbit8hummerr
kobamaxynewsic
MrSmithxRISKAAsA4
rsavtobyrussell2008
scoobiatoSergeSerw
vsesvitxezwomdi43

Реклама
»
Календарь
«    Февраль 2012    »
ПнВтСрЧтПтСбВс
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
 
Наши Партнеры
Информация
Администрация данного сайта не несет ответственность за использование ресурсов доступных на этом сайте. Все что расположено на этом портале предназначено ТОЛЬКО для ознакомительных целей!
Gsm сигнализация

Различные типы спутниковых охранных систем

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

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

Данный типсигнализацииизначально применялся только лишь в автомобиле и проявил себя с отличной стороны, максимально обезопасив транспортное средство. С развитием телефонии появилась возможность выполнять мониторинг в режиме реального времени и сейчас наблюдение за объектом с диспетчерского пульта уже не требует очень больших усилий.Так же gsm сигнализация дала возможность ее хозяину вести самостоятельный контроль за охраняемым объектом.

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

Она занимает лидирующие позиции и в области установки сигнализации спутникового слежения на объекты недвижимости. Так как именно эта система дает возможность решать различные возникающие вопросы довольно быстро и обеспечивает постоянный мониторинг.Так, например если вы нечаянно забыли отключить сигнализацию, то ввод кода или звонок в специальную службу даст возможность отменить вам тревогу. Что неимоверно экономит время и ваши нервы.

News: Тоже новости
В первых числах марта EverQuest начнет поддерживать модель «free-to-play» в дополнение к стандартной подписке. Подробности читайте в обращении продюсера игры.
Valve выпустила в открытый доступ Steam-приложение для iOS и Android, позволяющее общаться с друзьями,...

Читать дальше
Читаем все полностью...
ASP.NET: Пара сценариев отображения данных в GridView
Здравствуйте. Сегодня поговорим о веб-разработке. Несмотря на то, что популярность MVC растет очень быстро, Web Forms ещё никто не отменял. К тому же много приложений написано с использованием Web Forms, да и уже написанные приложения требуют поддержки. И если простейшие контролы (например, TextBox) у новичков вопросов, как правило, не вызывают, то сориентироваться в чем-то более сложном уже проблема.
В данном посте я расскажу в общих чертах, как использовать контрол GridView для работы со списком или специализированным источником данных. Предупреждаю сразу, тема не новая и статья ориентирована на начинающих разработчиков.
Поехали.


Начнем с теории. Класс GridView
Цитата
Отображает значения источника данных в таблице, где каждый столбец представляет поле, а каждая строка — запись. Элемент управления GridView позволяет выбирать, сортировать и изменять эти записи.
Его можно связывать с элементами-источниками данных (например, наследниками DataSourceControl), а можно просто отображать перечисляемые списки, указав значение свойства DataSource. Начнем с последнего.

Итак, задача: Имеется страница, на которой расположен GridView, и список, который нужно на этой странице формировать и иметь возможность его изменять (то есть добавлять/удалять элементы). Список хранится только на странице.

Порядок действий:
  • Создаём веб-приложение
  • Удаляем с домашней страницы всё лишнее (необязательно)
  • Создаём страницу GridViewList.aspx, указываем для неё мастер страницу
  • Добавляем в меню пункт со ссылкой на GridViewList.aspx
Отлично, полигон для действий готов. Класс-объект, с которым мы будем работать, я определил так:

  1. [Serializable]
  2. public class People
  3. {
  4.     [XmlAttribute]
  5.     public int Id { get; set; }
  6.     [XmlAttribute]
  7.     public string FirstName { get; set; }
  8.     [XmlAttribute]
  9.     public string LastName { get; set; }
  10. }

Теперь определимся со списком. Во-первых, так как список формируется и изменяется только в рамках этой страницы, я решил хранить его во ViewState. Я просто определил свойство на странице, которое автоматом себя сохраняет.

  1. public List<People> Peoples
  2. {
  3.     get
  4.     {
  5.         // Получение ключа для поиска во ViewState.
  6.         // hfPeoplesViewState - HiddenField, которое хранит в себе этот ключ
  7.         // Это всё сделано только для того, чтобы обеспечить уникальность ключа на странице.
  8.         // По идее тут можно было просто написать var str = "Peoples_Key" и всё бы работало
  9.         var str = hfPeoplesViewState.Value;
  10.         if (string.IsNullOrEmpty(str))
  11.         {
  12.             // Если ещё ничего не хранит, то создать ключ
  13.             hfPeoplesViewState.Value = string.Format("Peoples_{0}", Guid.NewGuid());
  14.             str = hfPeoplesViewState.Value;
  15.         }
  16.  
  17.         // Проверяю, если во ViewState ещё нет того списка, что мне нужен - создаю его
  18.         if (ViewState[str] == null || !(ViewState[str] is List<People>))
  19.         {
  20.             var peoples = new List<People>
  21.                               {
  22.                                   new People {Id = 1, LastName = "Мурадов", FirstName = "Артем"},
  23.                                 new People {Id = 2, LastName = "Пупкин", FirstName = "Василий"},
  24.                                 new People {Id = 3, LastName = "Елопанов", FirstName = "Инокентий"}
  25.                               };
  26.             ViewState[str] = peoples;
  27.             return peoples;
  28.         }
  29.         return ViewState[str] as List<People>;
  30.     }
  31.     set
  32.     {
  33.         // Аналогично методу get
  34.         var str = hfPeoplesViewState.Value;
  35.         if (string.IsNullOrEmpty(str))
  36.         {
  37.             hfPeoplesViewState.Value = string.Format("Peoples_{0}", Guid.NewGuid());
  38.             str = hfPeoplesViewState.Value;
  39.         }
  40.  
  41.         ViewState[str] = value;
  42.     }
  43. }

Добавим GridView в разметку. По пути также добавим пару текстовых полей и кнопку, для возможности добавления элемента в коллекцию.

  1. <asp:TextBox runat="server" ID="tbFirstName">
  2. </asp:TextBox>
  3. <asp:TextBox runat="server" ID="tbLastName">
  4. </asp:TextBox>
  5. <asp:Button runat="server" OnClick="BtAddPeople" Text="+" />
  6. <hr />
  7. <asp:GridView runat="server" ID="gv" AutoGenerateColumns="True" Width="60%">
  8.     <EmptyDataTemplate>
  9.         Записей нет</EmptyDataTemplate>
  10. </asp:GridView>

В обработчике событий

  1. protected void Page_Load(object sender, EventArgs e)
  2. {
  3.     if (!IsPostBack)
  4.     {
  5.         gv.DataSource = Peoples;
  6.         gv.DataBind();
  7.     }
  8. }
  9.  
  10. protected void BtAddPeople(object sender, EventArgs e)
  11. {
  12.     if (!string.IsNullOrEmpty(tbFirstName.Text) && !string.IsNullOrEmpty(tbLastName.Text))
  13.     {
  14.         var id = Peoples.Count > 0 ? Peoples.Max(x => x.Id) + 1 : 1;
  15.         var p = new People
  16.         {
  17.             Id = id,
  18.             FirstName = tbFirstName.Text,
  19.             LastName = tbLastName.Text
  20.         };
  21.         Peoples.Add(p);
  22.         UpdateGrid();
  23.     }
  24. }
  25.  
  26. private void UpdateGrid()
  27. {
  28.     gv.DataSource = Peoples;
  29.     gv.DataBind();
  30. }

Окей, теперь при первой загрузке страницы, у нас будет заполняться GridView. А при добавлении элемента в коллекцию, GridView будет обновляться. Вот как это выглядит:

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

  1. <asp:GridView runat="server" ID="gv" AutoGenerateColumns="False" Width="60%" AllowSorting="True">
  2.     <Columns>
  3.         <asp:BoundField HeaderText="ИД" DataField="Id" SortExpression="Id" ReadOnly="True">
  4.             <ItemStyle Width="5%"></ItemStyle>
  5.         </asp:BoundField>
  6.         <asp:BoundField HeaderText="Имя" DataField="FirstName" SortExpression="FirstName">
  7.             <ItemStyle Width="40%"></ItemStyle>
  8.         </asp:BoundField>
  9.         <asp:BoundField HeaderText="Фамилия" DataField="LastName" SortExpression="LastName">
  10.             <ItemStyle Width="40%"></ItemStyle>
  11.         </asp:BoundField>
  12.         <asp:CommandField ShowEditButton="True" ShowDeleteButton="True" ShowCancelButton="True">
  13.             <ItemStyle Width="15%"></ItemStyle>
  14.         </asp:CommandField>
  15.     </Columns>
  16.     <EmptyDataTemplate>
  17.         Записей нет</EmptyDataTemplate>
  18. </asp:GridView>
Теперь у нас есть кнопки, для того, чтобы сортировать, редактировать или удалять. Но только этого функционала пока нет. GridView не может самостоятельно править нашу коллекцию. Но это не беда, нам достаточно подписаться на нужные нам события и реализовать всё самим. Для редактирования нужны следующие события: OnRowEditing="GvEditing" OnRowUpdating="GvUpdating" OnRowCancelingEdit="GvCancelingEdit", для сортировки OnSorting="GvSorting", для удаления OnRowDeleting="GvDeleting".

  1. <asp:GridView runat="server" ID="gv" AllowSorting="True" OnSorting="GvSorting" OnRowEditing="GvEditing"
  2.     OnRowUpdating="GvUpdating" OnRowCancelingEdit="GvCancelingEdit" OnRowDeleting="GvDeleting"
  3.     DataKeyNames="Id" AutoGenerateColumns="False" Width="60%" >
  4.     <Columns>
  5.         <asp:BoundField HeaderText="ИД" DataField="Id" SortExpression="Id" ReadOnly="True">
  6.             <ItemStyle Width="5%"></ItemStyle>
  7.         </asp:BoundField>
  8.         <asp:BoundField HeaderText="Имя" DataField="FirstName" SortExpression="FirstName">
  9.             <ItemStyle Width="40%"></ItemStyle>
  10.         </asp:BoundField>
  11.         <asp:BoundField HeaderText="Фамилия" DataField="LastName" SortExpression="LastName">
  12.             <ItemStyle Width="40%"></ItemStyle>
  13.         </asp:BoundField>
  14.         <asp:CommandField ShowEditButton="True" ShowDeleteButton="True" ShowCancelButton="True">
  15.             <ItemStyle Width="15%"></ItemStyle>
  16.         </asp:CommandField>
  17.     </Columns>
  18.     <EmptyDataTemplate>
  19.         Записей нет</EmptyDataTemplate>
  20. </asp:GridView>

Вот код для сортировки

  1. /// <summary>
  2. /// Возникает при сортировке в гриде.
  3. /// </summary>
  4. protected void GvSorting(object sender, GridViewSortEventArgs e)
  5. {
  6.     var p = Peoples;
  7.  
  8.     // Необходимо определить, по какому именно полю сортировать
  9.     if (e.SortExpression == "LastName")
  10.     {
  11.         // используем вспомогательный метод Sort
  12.         p = Sort("LastName", list => list.OrderBy(x => x.LastName).ToList(),
  13.                  list => list.OrderByDescending(x => x.LastName).ToList(), p);
  14.     }
  15.     if (e.SortExpression == "FirstName")
  16.     {
  17.         p = Sort("FirstName", list => list.OrderBy(x => x.FirstName).ToList(),
  18.                  list => list.OrderByDescending(x => x.FirstName).ToList(), p);
  19.     }
  20.     if (e.SortExpression == "Id")
  21.     {
  22.         p = Sort("Id", list => list.OrderBy(x => x.Id).ToList(),
  23.                  list => list.OrderByDescending(x => x.Id).ToList(), p);
  24.     }
  25.  
  26.     Peoples = p;
  27.     // обновление грида
  28.     UpdateGrid();
  29. }
  30.  
  31. /// <summary>
  32. /// Вспомогательный метод для сортировки
  33. /// </summary>
  34. private List<People> Sort(string column, Func<List<People>, List<People>> ascFunc, Func<List<People>, List<People>> descFunc, List<People> data)
  35. {
  36.     List<People> result;
  37.     // Если в прошлвй раз была сортировка по этому же полю
  38.     if (hfLastSortFieldState.Value == column)
  39.     {
  40.         // смотрим, в каком направлении была сортировка в прошлвй раз и сортируем в другом
  41.         result = hfLastSortDirectionState.Value != "ASC" ? ascFunc(data) : descFunc(data);
  42.         // сохраняем колонку и направление сортировки
  43.         hfLastSortDirectionState.Value = hfLastSortDirectionState.Value != "ASC" ? "ASC" : "DESC";
  44.         hfLastSortFieldState.Value = column;
  45.     }
  46.     else
  47.     {
  48.         // Если это поле ещё не сортировано, сортируем по возрастанию
  49.         result = ascFunc(data);
  50.         // сохраняем колонку и направление сортировки
  51.         hfLastSortDirectionState.Value = "ASC";
  52.         hfLastSortFieldState.Value = column;
  53.     }
  54.  
  55.     return result;
  56. }

Код для редактирования и удаления

  1. /// <summary>
  2. /// Событие удаления элемента. Поле Id попадает в набор ключей,
  3. /// так как в гриде указано DataKeyNames="Id"
  4. /// Нам осталось только определить ключ и убрать элемент с этим ключем из коллекции
  5. /// </summary>
  6. protected void GvDeleting(object sender, GridViewDeleteEventArgs e)
  7. {
  8.     int id;
  9.     // Определяем идентификатор
  10.     if (int.TryParse(string.Format("{0}", e.Keys["Id"]), out id))
  11.     {
  12.         // Убираем из списка
  13.         Peoples = Peoples.Where(x => x.Id != id).ToList();
  14.         // обновляем грид
  15.         UpdateGrid();
  16.     }
  17. }
  18.  
  19. /// <summary>
  20. /// Событие возникает, когда пользователь начинает редактировать строку.
  21. /// Необходимо просто указать гриду индекс редактируемой строки и обновить грид
  22. /// </summary>
  23. protected void GvEditing(object sender, GridViewEditEventArgs e)
  24. {
  25.     gv.EditIndex = e.NewEditIndex;
  26.     UpdateGrid();
  27. }
  28.  
  29. /// <summary>
  30. /// Событие возникает, когда пользователь обновляет строку.
  31. /// Необходимо определить Id строки, получить элемент по этому Id, обновить поля и обновить грид
  32. /// </summary>
  33. protected void GvUpdating(object sender, GridViewUpdateEventArgs e)
  34. {
  35.     int id;
  36.     if (int.TryParse(string.Format("{0}", e.Keys["Id"]), out id))
  37.     {
  38.         Peoples
  39.             .Where(x => x.Id == id)
  40.             .ToList()
  41.             .ForEach(x =>
  42.                          {
  43.                             // я использую string.Format, так как
  44.                             // e.NewValues["FirstName"] имеет тип object
  45.                             // и может быть равен null
  46.                              x.FirstName = string.Format("{0}", e.NewValues["FirstName"]);
  47.                              x.LastName = string.Format("{0}", e.NewValues["LastName"]);
  48.                          });
  49.         gv.EditIndex = -1;
  50.         UpdateGrid();
  51.     }
  52. }
  53.  
  54. /// <summary>
  55. /// Событие возникает, когда пользователь отменяет обновление строки
  56. /// Нужно установить gv.EditIndex = -1; и обновить грид
  57. /// </summary>
  58. protected void GvCancelingEdit(object sender, GridViewCancelEditEventArgs e)
  59. {
  60.     gv.EditIndex = -1;
  61.     UpdateGrid();
  62. }

В итоге имеем грид, элементы которого можем удалять, добавлять, редактировать и сортировать.

Это всё хорошо, но что делать, если мы работаем с базой данных? В таких случаях можно определять источники данных (например, наследники DataSourceControl) и связывать их с гридом. Я приведу пример с использованием ObjectDataSource. Я выбрал ObjectDataSource, так как он зависит только от вашего кода и ему всё равно, откуда берутся данные - из базы данных, сервиса, файла, да чего угодно.

Формализуем задачу. Необходимо реализовать такой же функционал, как и в предыдущем примере, но с использованием ObjectDataSource. Только на этот раз данные я буду хранить не на странице, а в статической переменной - чтобы эти данные были доступны в рамках всего приложения (ведь так и происходит, когда вы работаете, например, с базой данных).

Вот класс автомобиля, с которым будем работать

  1. public class Car
  2. {
  3.     public int Id { get; set; }
  4.     public string Manufacturer { get; set; }
  5.     public string Model { get; set; }
  6. }

Начнем с класса-репозитория. Именно его методы будет вызывать ObjectDataSource для получения данных и манипуляции с ними. Хочу заметить, что я подобрал сигнатуру и набор методов репозитория специально для использования в ObjectDataSource. Вот сам класс:

  1. public class CarRepository
  2. {
  3.     /// <summary>
  4.     /// Статическая переменная. В ней будем хранить наши данные
  5.     /// </summary>
  6.     private static List<Car> _store;
  7.  
  8.     /// <summary>
  9.     /// Статический конструктор. Внутри инициализируем наши данные
  10.     /// </summary>
  11.     static CarRepository()
  12.     {
  13.         _store = new List<Car>();
  14.  
  15.         for (var i = 0; i < 1000; i++)
  16.         {
  17.             _store.Add(new Car
  18.             {
  19.                 Id = i,
  20.                 Manufacturer = "Manufacturer" + i,
  21.                 Model = "Model" + i
  22.             });
  23.         }
  24.     }
  25.  
  26.     /// <summary>
  27.     /// Получение данных. Принимает три параметра. Назначение первых двух очевидно,
  28.     /// а вот в третьем приходит информация  для сортировки. Например, у нас сортировка по полю
  29.     /// "Id". При сортировке по возрастанию переметр sort будет равен "Id".
  30.     /// При сортировке по убыванию - "Id DESC"
  31.     /// </summary>
  32.     public IEnumerable<Car> GetCars(int maximumRows, int startRowIndex, string sort)
  33.     {
  34.         IEnumerable<Car> temp = _store;
  35.  
  36.         // Сперва определяем направление сортировки, затем поле, по которому сортируем
  37.         if (sort.Contains("DESC"))
  38.         {
  39.             if (sort.Contains("Id")) temp = _store.OrderByDescending(x => x.Id);
  40.             if (sort.Contains("Manufacturer")) temp = _store.OrderByDescending(x => x.Manufacturer);
  41.             if (sort.Contains("Model")) temp = _store.OrderByDescending(x => x.Model);
  42.         }
  43.         else
  44.         {
  45.             if (sort.Contains("Id")) temp = _store.OrderBy(x => x.Id);
  46.             if (sort.Contains("Manufacturer")) temp = _store.OrderBy(x => x.Manufacturer);
  47.             if (sort.Contains("Model")) temp = _store.OrderBy(x => x.Model);
  48.         }
  49.  
  50.         return temp.Skip(startRowIndex).Take(maximumRows);
  51.     }
  52.  
  53.     /// <summary>
  54.     /// Необходим для подсчёта общего количества элеменов.
  55.     /// Используется для постраничного вывода данных
  56.     /// </summary>
  57.     public int Count()
  58.     {
  59.         return _store.Count;
  60.     }
  61.  
  62.     /// <summary>
  63.     /// Для обновления в метод приходит экземпляр Car с
  64.     /// идентификатором обновляемой машины и новыми значениями полей
  65.     /// </summary>
  66.     public void Update(Car car)
  67.     {
  68.         _store
  69.             .Where(x => x.Id == car.Id)
  70.             .ToList()
  71.             .ForEach(x =>
  72.                          {
  73.                              x.Manufacturer = car.Manufacturer;
  74.                              x.Model = car.Model;
  75.                          });
  76.     }
  77.  
  78.     /// <summary>
  79.     /// Удаление. Код и так понятен.
  80.     /// </summary>
  81.     public void Delete(Car car)
  82.     {
  83.         _store = _store.Where(x => x.Id != car.Id).ToList();
  84.     }
  85.  
  86.     /// <summary>
  87.     /// Добавление
  88.     /// </summary>
  89.     public void Insert(Car car)
  90.     {
  91.         car.Id = _store.Count > 0 ? _store.Max(x => x.Id) + 1 : 1;
  92.         _store.Add(car);
  93.     }
  94. }

Отлично. Теперь, как и в предыдущем примере, добавляем страницу в проект и кидаем на эту страницу 2 текстбокса и кнопку (для возможности добавления)

  1. <asp:TextBox runat="server" ID="tbManufacturer">
  2. </asp:TextBox>
  3. <asp:TextBox runat="server" ID="tbModel">
  4. </asp:TextBox>
  5. <asp:Button runat="server" OnClick="BtAddCar" Text="+" />
  6. <hr />

  1. protected void BtAddCar(object sender, EventArgs e)
  2. {
  3.     if (!string.IsNullOrEmpty(tbManufacturer.Text) && !string.IsNullOrEmpty(tbModel.Text))
  4.     {
  5.         var carRepository = new CarRepository();
  6.         carRepository.Insert(new Car {Manufacturer = tbManufacturer.Text, Model = tbModel.Text});
  7.         gv.DataBind();
  8.     }
  9. }


Теперь поработаем над самим контролом ObjectDataSource.

  1. <asp:ObjectDataSource ID="ods" runat="server" TypeName="GridViewTest.CarRepository"
  2.     DataObjectTypeName="GridViewTest.Car" EnablePaging="True" MaximumRowsParameterName="maximumRows"
  3.     StartRowIndexParameterName="startRowIndex" SortParameterName="sort" InsertMethod="Insert"
  4.     SelectCountMethod="Count" SelectMethod="GetCars" UpdateMethod="Update" DeleteMethod="Delete">
  5. </asp:ObjectDataSource>

Поясню по каждому полю.
  • TypeName="GridViewTest.CarRepository" - указывает класс-источник данных
  • DataObjectTypeName="GridViewTest.Car" - указывает тип объекта, которым будем оперировать. Благодаря этому мы можем в репозитории указывать методы, принимающие в качестве параметра экземпляр типа Car. Этот тип должен иметь конструктор без параметров и поля, доступные для записи.
  • EnablePaging="True" указываем, что используется постраничный вывод
  • MaximumRowsParameterName="maximumRows" StartRowIndexParameterName="startRowIndex" SortParameterName="sort" имена параметров в методах
  • InsertMethod="Insert" SelectCountMethod="Count" SelectMethod="GetCars" UpdateMethod="Update" DeleteMethod="Delete" имена методов в репозитории

Теперь у нас всё готово для того, чтобы добавить на страницу грид. Приведу весь его код.

  1. <asp:GridView runat="server" ID="gv" AllowSorting="True" DataKeyNames="Id" AutoGenerateColumns="False"
  2.     DataSourceID="ods" Width="60%" AllowPaging="True" PageSize="20">
  3.     <Columns>
  4.         <%--Тут, как и в предыдущем примере, я использую BoundField--%>
  5.         <asp:BoundField HeaderText="ИД" DataField="Id" ReadOnly="True" SortExpression="Id">
  6.             <ItemStyle Width="5%"></ItemStyle>
  7.         </asp:BoundField>
  8.         <%--Здесь я тоже мог бы использовать BoundField, но я хотел показать, как использовать
  9.         TemplateField с односторонней (Eval) и двухсторонней (Bind) привязкой данных--%>
  10.         <asp:TemplateField HeaderText="Производитель" SortExpression="Manufacturer">
  11.             <ItemStyle Width="35%"></ItemStyle>
  12.             <ItemTemplate>
  13.                 <%#Eval("Manufacturer")%>
  14.             </ItemTemplate>
  15.             <EditItemTemplate>
  16.                 <asp:TextBox runat="server" ID="tbMan" Text='<%#Bind("Manufacturer") %>'></asp:TextBox>
  17.             </EditItemTemplate>
  18.         </asp:TemplateField>
  19.         <%--Тут всё аналогично предыдущему столбцу--%>
  20.         <asp:TemplateField HeaderText="Модель" SortExpression="Model">
  21.             <ItemStyle Width="35%"></ItemStyle>
  22.             <ItemTemplate>
  23.                 <%#Eval("Model")%>
  24.             </ItemTemplate>
  25.             <EditItemTemplate>
  26.                 <asp:TextBox runat="server" ID="tbModel" Text='<%#Bind("Model") %>'></asp:TextBox>
  27.             </EditItemTemplate>
  28.         </asp:TemplateField>
  29.         <%--Я хочу показать, что для того, чтобы использовать кнопки редактирования/удаления,
  30.         вам не обязательно пользоваться CommandField. Достаточно указать нужное значение в поле
  31.         CommandName любого кнопочного контрола--%>
  32.         <asp:TemplateField>
  33.             <ItemStyle Width="25%"></ItemStyle>
  34.             <ItemTemplate>
  35.                 <asp:LinkButton runat="server" CommandName="Edit" Text="Изменить"></asp:LinkButton>
  36.                 <%--А раз это простые кнопки, то можно им добавлять нужное поведение. Например,
  37.                 OnClientClick отработает на клиенте, спросит у пользователя разрешение на действие,
  38.                 и постбек произойдет только в том случае, если пользователь ответит утвердительно --%>
  39.                 <asp:LinkButton runat="server" CommandName="Delete" Text="Удалить"
  40.                 OnClientClick="return confirm('Вы действительно хотите удалить запись?');"></asp:LinkButton>
  41.             </ItemTemplate>
  42.             <EditItemTemplate>
  43.                 <asp:LinkButton runat="server" CommandName="Update" Text="Обновить"></asp:LinkButton>
  44.                 <asp:LinkButton runat="server" CommandName="Cancel" Text="Отменить"></asp:LinkButton>
  45.             </EditItemTemplate>
  46.         </asp:TemplateField>
  47.     </Columns>
  48.     <%--Контент, который будет показан, если записей не будет вовсе--%>
  49.     <EmptyDataTemplate>
  50.         Записей нет</EmptyDataTemplate>
  51. </asp:GridView>

Собрав всё вместе, получаем результат:



Вот и всё. Данные можно изменять, сортировать, удалять.

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

Исходный код солюшена

Полезные ссылки:
  • GridView, и с чем его едят
  • GridView, и с чем его едят (часть вторая, большая)
  • Displaying Data With the ObjectDataSource (C#)
  • ObjectDataSource In Depth


Читаем все полностью...
Программа для магазина Тирика 2.2
Программа для магазина. Проста в использовании, даже неопытный пользователь освоит ее за пять минут. Ведет регистрацию продаж и закупок, остатков товара, прихода и расхода денег, генерирует отчеты сразу в Word.
Читаем все полностью...
Kaptain Brawe: A Brawe New World HD
Скачать Kaptain Brawe: A Brawe New World HD бесплатно

Шагните в это причудливое point-and-click, межзвездное приключение и узнайте что такое быть реальным Космическим Полицейским! В этой альтернативной реальности, подготовьтесь предпринять путешествие, заполненное квестами, заговорами и общим хаосом. Вы должны будете примерить на себя ботинки храброго ...
Читаем все полностью...
АвтоМойка – AutoWasher 1.0.0
АвтоМойка предназначена для автоматизации и упрощения учета оказанных услуг на автомобильных мойках, предприятиях шиномонтажа и др. предприятиях оказывающих услуги автосервиса. Предоставляет следующие возможности - Вести справочник работ (услуг) На каждую работу оформить карточку учета с полным описанием характеристик работы (услуги). Формировать пакеты работ (услуг). Привязывать список сотрудников выполняющих данную работу (услугу). - Вести каталог сотрудников Оформлять карточки сотрудников: рабочих и мастеров, автоматически производить начисления сотрудникам за выполненные работы. - Вести журнал выплат сотрудникам. Позволяет оформлять сотрудникам выплаты з/п, вести учет выплат з/п. Формировать отчет о выплатах з/п. - Вести журнал кассы. Позволяет вести кассу прихода расхода денежных средств. Корректировать кассовые операции. Формировать отчетность по движению денежных средств. - Вести каталог клиентов На каждого клиента можно оформить карточку, в которой будет вестись учет его заказов, платежей, транспортных средств. - Вести каталог транспортных средств На каждое транспортное средство оформить карточку учета с полным описанием характеристик т/с. Позволяет оперативно заполнять сведения об автомобиле при оформлении заказа. Осуществлять поиск сведений об автомобиле, его владельцах - Оформлять заказы-наряды Создавать карточки заказов-нарядов. В карточке хранить информацию о плательщике, транспортном средстве, список работ и список сотрудников, выполняющих каждую работу, оформлять в карточке з/н платежи - Распечатывать выходные формы: - По заказу-наряду: Заявку на выполнение работ + форма внешнего осмотра Заказ-наряд Счет Счет-фактура Акт выполненных работ - По клиенту: Выполненные работы Сведения о платежах - По сотруднику: Список выполненных работ Сведения о расчетах Для первоначального входа в программу выберите пользователя: Администратор и укажите пароль: 1


Читаем все полностью...
IObit SmartDefrag 2.2.0.1112
Программа для дефрагментации жесткого диска. Работает в нескольких режимах: ручном, по расписанию и в автоматическом (дефрагментация происходит в фоновом режиме, когда компьютер простаивает). В случае использования автоматического режима программа работает незаметно для пользователя и производительности системы. Дефрагментация начнется в тех случаях, когда компьютер активно не используется, простаивает. В настройках можно указать при каких условиях стартовать и останавливать процесс дефрагментации. Например, при простое системы 5 минут начинать и завершать, когда загрузка процессора достигнет 40%. Кроме всего прочего программа IObit SmartDefrag не только дефрагментирует файлы, но и оптимизирует, упорядочивает их расположение относительно друг друга для более быстрого чтения.


Читаем все полностью...
TableTextCompare 1.05
Утилита, которая позволяет сравнить по наполнению два разделенных символом табуляции или запятыми CSV-файла. Программа может произвести сравнение даже в том случае, если записи файлов не отсортированы по порядку или присутствует различное расположение полей.


Читаем все полностью...
Современные угрозы и защита от них -> Как максимально защититься от malware в windows, которых нет в антивирусных базах?
====>> Цитата (Anmawe @ 19.12.2011, 23:03) :
Касперский мне нравится, потому что так контроль программ есть. В других антивирусах я не видел чего-то похожего.
<<====
Agnitum. Comodo.
Читаем все полностью...
Gallery: Game of Thrones
Всего скриншотов: 11
Новых скриншотов: 8

Открыть галерею
Читаем все полностью...
Кладезь Версия 2.0
Современный электронный толковый словарь русского языка. Словарь является второй версией толкового словаря «Кладезь». Теперь словарь имеет более 22 тысяч слов, более 200 тысяч словоформ и более 1000 ссылок на поясняющие статьи. Не требует установки. Распакуйте архив на любой диск своего компьютера и в папке kladez запустите файл kladez.exe.


Читаем все полностью...
News: Коллекционные «триквелы»
Стали известны подробности российского релиза двух ноябрьских боевиков — Call of Duty: Modern Warfare 3 от «Нового Диска» и Saints Row: The Third от «Акеллы».

Call of Duty: Modern Warfare...

Читать дальше
Читаем все полностью...
Patch: Strike Fighters 2 (Обновление от майского до октябрьского 2011 г.)
Совместимо с играми Strike Fighters 2: Europe и Strike Fighters 2: Vietnam.

Скачать
Читаем все полностью...
AVG Free Edition 2012.0.1834 - бесплатное антивирусное решение для защиты Windows
AVG Logo

Обновился AVG Free Edition , бесплатный антивирус, который обеспечивает защиту от вирусов, троянский коней, кейлоггеров, шпионских и прочих опасных программ, обладает рядом настроек, позволяющих оптимизировать программу под свои нужны и потребности, а также имеет возможность обновления базы данных вирусов через Интернет. В AVG Free Edition имеются практически все необходимые модули для обеспечения качественной защиты ПК от вирусных угроз.

Интерфейс AVG Free Edition

Скачивать AVG Free Edition 2012.0.1834 тут (Freeware, Windows All).

Читаем все полностью...
Тренажёр-симулятор Battlefield 3 (полное 3D)
Шведская компания MSE Weibull в сотрудничестве с экспертами по технологиям со всех концов Европы разработала уникальный FPS-тренажёр, позволяющий играть в пре-релизную версию Battlefield 3 в полном 3D...


Читаем все полностью...
Новости :: Microsoft Skype - сделка завершена
Автор: Jazz
Тема: Microsoft Skype - сделка завершена
Добавлено: 2011-10-14, 12:46 (GMT 3)

14 октября 2011 корпорация Microsoft объявила об окончании сделки по приобретению компании Skype. С этого для программу можно официально называть Microsoft Skype.

Впервые о намерении приобрести Skype компанией Microsoft было заявлено еще 10 мая 2011 года. Сумма сделки составила $ 8,5 млрд.

С завершением этой Skype официально становится новым бизнес-подразделением в составе Microsoft, возглавлять которое будет нынешний глава Skype - Тони Бейтс (Tony Bates).

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

Сотрудники Skype по-прежнему будут расположены по всему миру в том числе Эстонии, Чехии, России, Швеции, Великобритании, Люксембурга, Японии, Сингапуре, Гонконге и США.


Читаем все полностью...
Video: Ultimate Marvel vs. Capcom 3 (Видео #21)
Репортаж с турнира в Лос-Анджелесе.

Посмотреть или скачать
Читаем все полностью...
Общий форум по информационной безопасности -> Как ускорить работу антивируса.
Подведем промежуточный итог:
Если мы добавляем в исключения к антивирусу папки, контролируемые УАКом, то:
- из отрицательного:
1. Повышаем возможность заражения через обход УАКа с помощью эксплоита (и антивирус тогда не поможет, т.к папка будет в исключениях)
2. Также имеем возможность обхода УАКа через соц-инженерию (долбание юзера вопросами и т.д), антивирус себя ведет как и в первом случае
При этом: если юзер обучен работе с УАКом, то второй отрицательный пункт ему не грозит.

- из положительного:
1. выигрыш в скорости.

Осталось разобраться насколько большой выигрыш дает эта операция. Для начала приведите список папок и количество файлов там, ну или просто список папок. Затем опишите как вы понимаете работу антивируса - когда и к каким папкам и зачем он обращается (вероятно для того, чтобы проверить имеющиеся там файлы на вирусы?)...

PS: Валерий, я обеими руками "за" проведение вебинара по УАКу. Если будет возможность, то снова приду и закидаю весь чат вопросами )))
Читаем все полностью...
Video: Darkfall Online (Видео #10)
Демонстрация системы освещения.

Посмотреть или скачать
Читаем все полностью...
Gom Player 2.1.33
GOM Player поддерживает все современные видео и аудио форматы включая видео мобильных устройств и цифровых камер, а также воспроизведение интернет контента прямо из сети. Поддерживаемые форматы: avi, divx, asx, asf, wmx, wmv, wvx, wm, mpg, dat, ifo, vob, m1v, m2v, tp, dmb, mp4, m4v, k3g, 3gp, skm, dmskm, lmp4, m, mvb, mkv, ogm, gom. Встроенные кодеки: AC3, OGG, XVID, DIV1, DIV2, DIV3, DIV4, DIV5, DIV6, DIVX, DX50, MP41, MP42, MP43, H263, AP41, MPG4, MP4S, M4S2, MP4V, BLZ0, MJPG, RMP4, DXGM, H264, ffmpeg. В GOM Player присутствует такая особенность, как функция перемотки по кадрам, значительно увеличивающая скорость перемотки. Основные функции и возможности GOM Player: * плавное воспроизведение видео контента на относительно слабых компьютерах * полная независимость от внешних декодеров * различные режимы вывода изображения (ТВ, монитор, проектор) * полноценное воспроизведение DVD * проигрывание поврежденных видео файлов * быстрая покадровая перемотка * управление частотой регенерации * функция повтора и пропуска кадров * Закладки (запоминание времени любимой сцены и переход к ней одним нажатием) * работа с избранным * поддержка списков воспроизведения (чтение ASX, M3U, PLS) * автоматическое добавление в список воспроизведения файлов с похожим расширением * управление, как с помощью мыши, так и клавиатуры * настройка изображения (яркость, контраст, насыщенность, гамма) * применение специальных эффектов: сглаживание, программное преобразование, добавление шума * устранение эффекта квадратов * захват изображения (в файл / непрерывное сохранение кадров / в буфер / установка в качестве обоев Рабочего стола) * запись звука в форматы WAV или OGG * нормализация громкости и различные аудио эффекты (эхо, трехмерный звук, удаление голоса, выделение голоса) * эквалайзер и управление динамическим диапазоном * возможность использования DSP-модулей от Winamp * работа с субтитрами * горячие клавиши и поддержка мультимедийных клавиатур * автоматическое масштабирование изображения * автоматическое выключение компьютера после воспроизведения * простая настройка для работы с ТВ-выходом * проигрывание интернет контента прямо из сети * простой и удобный интерфейс с поддержкой скинов


Читаем все полностью...
Patch: Pirates of Black Cove (Патч до v1.0.3)
Данный патч предназначен для цифровой версии.

Скачать
Читаем все полностью...
Cheat: Forza Motorsport 4
Achievement (ENG)

Открыть страницу
Читаем все полностью...
Aml Maple 2.60
Индикатор, показывающий язык ввода (раскладку клавиатуры) в мышином и текстовом курсоре, непосредственно в месте ввода текста. Показывает флаг страны или название языка в мышином и текстовом курсоре. Меняет цвет и вид текстового курсора в любом приложении в зависимости от активного языка. Работает в большинстве веб-браузеров: Internet Explorer, Google Chrome, Mozilla Firefox, Opera, Maxthon. Настройки программы позволяют исключить определенные приложения из работы Aml Maple. Работает в системной панели (панель рядом с часами), умеет запускаться вместе с Windows. Если Вы работаете с несколькими языками, и постоянно переключаете раскладку клавиатуры, то теперь вам не придется раздражаться, набрав текст неправильно, всего лишь забыв переключить язык ввода. Индикатор языка теперь постоянно будет перед глазами, причем именно в том месте, куда и обращен Ваш взгляд — в точке ввода текста. Поддерживает несколько языков пользовательского интерфейса: русский, английский, итальянский, турецкий, белорусский, украинский и множество других.


Читаем все полностью...
Re: Программа для изменение программы!
[quote]но в деятельности хакерства нет[/quote] Сомневаюсь...
Читаем все полностью...
3GP Конвертер Ультра 2.35
3GP Конвертер Ультра - быстрый конвертер видео для мобильных телефонов и плееров. Программа конвертирует видео из любых форматов в 3GP, 3GP2 и MP4, при этом включает готовые настройки для 230 портативных устройств. Инновационная технология Mobile Enhancer позволяет получить видео высочайшего качества для просмотра на экране мобильных телефонов. Продукт даёт возможность конвертации множества файлов одновременно, извлекать аудио из видео, добавлять спецэффекты и многое другое. 3GP Конвертер Ультра поддерживает более сотни форматов видео (AVI, MP4, MKV, FLV, 3GP, 3G2, WMV, MOV, VOB, MPG, PSP, M4V, MPEG, MTV, H261, H263, H264, MP3 и другие) и не требует никаких дополнительных кодеков. С его помощью вы сможете сконвертировать видео даже самого редкого формата и просмотреть его на своём мобильном телефоне. Любое видео можно обрезать или соединить с другим клипом, а также повернуть, отразить и применить цветовые эффекты. Несмотря на широкие возможности, 3GP Конвертер имеет доступный интерфейс и прост в освоении. Конвертировать видео для мобильных можно всего за несколько кликов мышью!


Читаем все полностью...
Demo: Tropico 4 (Xtreme Repack демо-версии)
Эль Президенте стремится превратить свой маленький банановый остров в сверхдержаву. Помочь ему вы можете в четырех обучающих заданиях и первой миссии кампании. Опубликованная на AG экстремально сжатая версия аналогична оригиналу по содержимому (сжатие данных произведено без потери качества), но...

Скачать
Читаем все полностью...
Строчные элементы

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

Читаем все полностью...
Домашняя Фотостудия 3.45
Удобный и мощный редактор фотографий, открывающий неограниченные возможности для творчества. Он позволяет быстро улучшать и редактировать фото, просматривать слайд-шоу, добавлять сотни спецэффектов, создавать коллажи, открытки и календари. Домашняя Фотостудия позволяет достигнуть отличных результатов даже начинающим. Домашняя Фотостудия позволит наслаждаться просмотром любимых фотографий в виде красивого слайд-шоу на полном экране, обрабатывать фото в пакетном режиме, создавать коллажи из десятков изображений. Она также даёт новые возможности для улучшения и редактирования фотографий: поддерживаются такие инструменты как Уровни, Кривые, автоматическая цветокоррекция и многое другое.


Читаем все полностью...
Review: CreaVures
Делать безыдейный кооперативный платформер в мире, где уже есть Trine, занятие настолько же смелое, насколько и глупое. Игра о приключениях мага, воина и воровки отлично продается и через два года после выхода, а прямого с ней сравнения CreaVures не...

Читать дальше
Читаем все полностью...
Portugal House Hits Vol.6
Скачать Portugal House Hits Vol.6 бесплатно

Исполнитель: Various Artists Альбом: Portugal House Hits Vol.6 Лейбл: Vidisco Portugal Стиль: House Дата: 28.06.2011 Количество треков: 29 Время звучания: 02:29 :48 min Формат: mp3 Качество: 192-320 kbps / 44100Hz / Joint Stereo Тип рипа: unmixed / 2CD Размер: 324 mb
Читаем все полностью...
Хакеры взломали базу данных веб-сервиса Sega
Гигант электронной игровой индустрии японская холдинговая компания Sega заявила, что хакеры взломали ее европейский игровой веб-сервис Sega Pass и похитили данные почти 1,3 миллиона пользователей, сообщает в воскресенье РИА Новости. В сообщении компании говорится, что злоумышленники завладели электронными адресами, паролями и данными о датах рождения пользователей. В Sega отметили, что вся финансовая информация не пострадала, однако не исключили, что теперь злоумышленники, возможно, будут рассылать клиентам электронные письма, чтобы получить более подробную персональную информацию.
Читаем все полностью...
Total Finder 1.1.13 для Mac расширяет возможности Finder

Выпущена новая версия утилиты Total Finder, расширяющей функциональность стандартного файлового менеджера операционной системы Mac OS X.

Программа добавляет в Finder возможность создания вкладок (внешне напоминающих вкладки веб-браузера Google Chrome), режим двухпанельного файлового менеджера, общесистемный вызов окна с помощью горячей клавиши, возможность запрета создания файлов мета-данных .DS_Store, режим отображения папок перед файлами и др.

Скриншот Total Finder

В новой версии Total Finder (1.1.13) улучшена поддержка Mac OS X 10.7 Lion, исправлены механизмы деинсталляции и отчета об ошибках, внесены другие улучшения.

Программу можно приобрести за 15 долл. Загрузить shareware-версию Total Finder можно отсюда .

Читаем все полностью...
Создание резервных копий: JaBack v.9.04
JaBack это простая и одновременно мощьная программа для создания резервных копий ваших данных. Можно запускать процедуру по расписанию или к примеру при наступлении каких либо событий. В результате работы программы для вас будет сформирован zip файл архива всех указанных файлов.
Читаем все полностью...
Gallery: Planet Arkadia
Всего скриншотов: 1
Новых скриншотов: 1

Открыть галерею
Читаем все полностью...
Новая версия Red Hat Enterprise Linux оптимизирована для облаков
Компания Red Hat 19 мая выпустила Red Hat Enterprise Linux (RHEL) 6.1. Это первое большое обновление серверной платформы Red Hat с момента выхода RHEL 6 в ноябре прошлого года. Новый дистрибутив предлагает улучшенные технологии виртуализации KVM, поддержку новых аппаратных технологий, таких как горячее включение процесоров и памяти, архитектуры NUMA и PCI Express 3.0, а также улучшения в производительности и надежности по сравнению с прошлой версией. Новый дистрибутив также включает обновленные версии средств разработки и мониторинга, в частности, обновленную среду разработки Eclipse, предлагающую значительные улучшения в работе с Java и С/C++. Не удивительно, что основной акцент в развитии релиза...
Читаем все полностью...
Video: Deadline (Видео #5)
Анонс обновления на французском языке.

Посмотреть или скачать
Читаем все полностью...
Баг в adblock+

На странице http://fishki.net/ в данный момент вверху крутится огромная флеш реклама. Обычно adblock показывает кнопку "Заблокировать" над флеш роликами, но над этим не показывает.

Флеш: http://ru.fishki.net/picsw/042011/29/mosvar.swf
Как он прописан на этой странице:

Это не первый раз уже такое, можно ли как-то тоже отображать кнопку "Заблокировать"?

Читаем все полностью...
Написание программ, вирусов под ваши параметры.
[IMG]http://i032.radikal.ru/1102/0b/9589db95c829.jpg[/IMG] [center]Мои услуги:[/center] Написание [b]троянов [/b](уд. администрирование), [b]кейлоггеров [/b](клавиатурные шпионы), [b]червей [/b](удаление, заражение и т.д.) под ваши параметры. Написание сетевых, вычислительных, графических программ. [center]Цены на вир. софт:[/center] [left][b]- Трояны[/b] - [u]от 20$ [/u](зависит от функционала) - [b]Кейлоггеры и шпионский софт[/b] - [u]от 20$[/u] - [b]Черви[/b] - [u]от 25$ [/u](зависит от функционала, веса) [center]Связь:[/center] ICQ: [b][color=green]611892[/color][/b]
Читаем все полностью...
Soft: BitComet 1.27
Один из самых удобных в использовании клиентов p2p-сети BitTorrent. Богатый выбор настроек, неплохая скорость и приятный интерфейс выгодно отличают его от множества конкурентов. В пользу BitComet говорит и отсутствие необходимости искать оригинальный torrent-файл, дабы продолжить начатую ранее закачку. Кроме того, программа почти лишена ошибок.

Скачать
Читаем все полностью...
Где скачать Windows?
У меня есть ключ для Windows 7 Professional Edition. Где можно скачать официальный iso дистрибутива?
Читаем все полностью...
AI RoboForm 6.9.8.4
RoboForm: - Запоминает Ваши пароли и автоматически вводит данные. - Заполняет большие регистрационные формы одним щелчком. - Шифрует Ваши данные для полной безопасности. - Генерирует пароли, которые невозможно подобрать. - Противодействует фишингу, сверяя URL страниц.


Читаем все полностью...
Чтение .txt файла и запись в .php
Кто нибудь знает такой скрипт чтобы допустим сначала идёт чтение файла .txt с другого сайта, затем допустим мне надо из этого содержимого убрать "-"...
Читаем все полностью...
Корзина :: Проблема с чатом
Автор: Читаем все полностью...
Patch: Ship Simulator Extremes (Патч до v1.3.5)
Скачать
Читаем все полностью...
Какую лицензию выбрать?
Существует 3 варианта лицензирования SQL Server:
1. Лицензирование «на процессор» требуется по одной лицензии SQL Server на каждый процессор сервера, к которому имеют доступ операционные системы, на которых установлен SQL Server.
2. Лицензирование в модели «сервер-CAL». Требуется лицензия для каждого сервера, а также клиентская лицензия для каждого пользователя или устройства, которые будут использовать SQL Server.
*ВАЖНО!!! Для продуктов, которые работают с SQL Server, и лицензируются в модели “сервер-CAL” необходимо приобретение лицензии SQL CAL для каждого пользователя или устройства, которые обращаются к соответствующему серверу, несмотря на то, что прямого обращения к SQL Server может не быть.
3. Лицензии со «встроенной» технологией SQL Server. Не требуют приобретения дополнительных лицензий на SQL Server, но могут использоваться только с тем сервером, вместе с которым были куплены. Такие лицензии предлагаются только для некоторых продуктов
----------------------------------------------
Система следующая: сервер работает с базой данных и веб приложение, которое собственно обращается к БД и выдает результат в браузер. Соответственно один сервер и один клиент по администрированию сервера.
Предварительный вариант сервера SQL Server 2008 R2 Standart Edition.
Возникает вопрос по политике лицензирования, какая тогда будет? Какую выбрать?
Подскажите пожалуйста!
Читаем все полностью...
Тесты, сравнения и аналитика -> Тест самозащиты антивирусов x64 (результаты)
Требуется небольшое уточнение.

Системные вызовы в тестах делались через ntdll или через syscall? Спасибо.
Читаем все полностью...
BitTally 0.8
Бесплатная программа для учета и контроля входящего и исходящего сетевого трафика. Учет данных о трафике в реальном времени, возможность фильтровать данные по сетям, пользователям, адресам сайтов, категориям доменов, протоколам. Контроль трафика: автоматическая ограничение, блокировка, перенаправление и перехват трафика по задаваемым пользователем условиям в виде логических выражений. Автоматическое распознавание 113 сетевых протоколов, определение категорий посещаемых сайтов, пользователей и стран. Десятки видов отчетов о трафике, неограниченное количество одновременно открытых окон отчетов. Работа по технологии клиент-сервер. Управление из браузера или из программы-клиента. Настраиваемые html-шаблоны отчетов для web-интерфейса и Excel-шаблоны для экспорта данных в клиенте. Возможность использовать в шаблонах формулы, сводные таблицы, фильтрацию и группировку данных, диаграммы и другие возможности Excel.


Читаем все полностью...
Review: Europa Universalis 3: Divine Wind
Первое государство, затронутое изменениями, Япония. В предыдущих версиях не было инструментов, позволяющих изобразить здешние феодальные разборки и отсутствие интереса к остальному миру. В Divine Wind все иначе: игрок выбирает одного из четырех даймё, стремящихся...

Читать дальше
Читаем все полностью...
µTorrent 2.2 Build 24683 - обновленная версия компактного BitTorrent-клиента
В очередной раз обновилась стабильная версия компактного клиента под названием µTorrent. Программа изначально разработана как альтернатива станда...
Читаем все полностью...
Танковый бой 3 3.5
Вы управляете советским танком. Стрелять, стрелять и еще раз стрелять. Вот главная ваша задача в этой игре. Не забывайте, по возможности, уклоняться от атак вражеских танков и самолетов. Вам предстоит пройти нелегкий путь от Москвы до Берлина, освобождая города и захватывая аэродромы. По мере приобретения опыта будет расти ваше воинское звание и улучшаться показатели вашего экипажа, а значить и танка. Общая цель игры, это освободить Европу от фашизма и вписать свое имя в таблицу рекордов. Помните, что время для успешного выполнения исторической миссии ограничено, к Берлину рвутся союзники. И попасть в Зал Славы можно только опередив их, а это совсем непросто. Несколько советов: 1. Старайтесь ремонтировать ваш танк как можно реже. 2. От самолета легче уклониться, чем сбить его. 3. Не пытайтесь подбить отступающие танки, если в это время вас атакуют другие. Эта мини игра с очень простыми правилами и онлайн таблицей рекордов поможет скоротать свободное время за вашим компьютером. Удачи в бою.


Читаем все полностью...
Тесты, сравнения и аналитика -> Тест самозащиты антивирусов x64 (результаты)
====>> Цитата (Сергей Ильин @ 31.01.2011, 22:56) :
ntoskrnl, давайте ближе к делу. Вы что конкретно хотите, чтобы мы прогнали Комода с какими-то другими настройками или что-то перепроверили? В чем истинный смысл этого длительного копания в методологиях всех тестов подряд без разбору и поисках каких-то глубинных причин?
<<====
Я хочу чистоты эксперимента. Решили тестировать на дефолтах? Тестируйте на дефолтах. Начали принимать решения за систему безопасности? Берите этот груз целиком и настраивайте их все так,чтобы были видны границы применимости. Или, по крайней мере, отражайте этот факт в результатах. Это так, в качестве пожелания на будущее. Для меня лично ничего перепроверять не нужно, я и так знаю возможности многих участников теста. А вот что Вы хотите донести до своих читателей - Вам решать.
Читаем все полностью...
OpenSSH 5.7 — обновление свободной реализации SSH
Минувшей ночью в почтовой рассылке openbsd-announce было представлено очередное обновление популярной свободной реализации протокола SSH — OpenSSH 5.7.Хотя на российских зеркалах еще нет архивов с OpenSSH 5.7, а на сайте проекта не представлен официальный анонс, уже известны подробности о появившихся новшествах. Итак, среди основных изменений в OpenSSH 5.7 выделяются: поддержка режимов Elliptic Curve Cryptography для обмена ключами (ECDH) и ключей хостов/пользователей (ECDSA) в соответствии с RFC 5656; в sftp(1)/sftp-server(8) появилась поддержка операции создания жесткой ссылки (для этого у клиента используется команда «ln»; для создания символической ссылки теперь нужно вызывать «ln -s» или «symlink»); у scp(1) появилась опция -3 для копирования между двумя удаленными хостами с пер...
Читаем все полностью...
Фильм Социальная сеть
В фильме рассказывается история создания одной из самых популярных в Интернете социальных сетей — Facebook. Оглушительный успех этой сети среди пользователей по всему миру навсегда изменил жизнь студентов-однокурсников гарвардского университета, которые основали ее в 2004 году и за несколько лет стали самыми молодыми мультимиллионерами в США. ...
Читаем все полностью...
Skype 5.1
Новая версия Skype - популярная программа для бесплатного общения голосом (и не только) через Интернет. Skype очень прост в обращении. Загрузите Skype, зарегистрируйтесь, установите, подключите наушники и микрофон, динамики или USB-телефон и звоните своим друзьям и близким. Наша технология обеспечивает безупречное качество звука, а сквозное шифрование гарантирует высокую степень безопасности при передаче данных через Интернет. Вам даже не придется изменять конфигурацию брандмауэра, маршрутизатора и любого другого сетевого оборудования. Skype будет просто работать. Skype - также включает в себя функции видеочата и обычного чата. Характеристики: Бесплатные звонки между абонентами Skype, где бы они ни находились. Видеосвязь, позволяющая собеседникам видеть друг друга. Отправка SMS-сообщений друзьям в пути. Групповой чат с участием до 100 человек или телефонная конференция с участием до 4 человек (не считая ведущего). Также есть ссылка на более раннюю версию Skype 3.8, которая считается наиболее удачной, судя по отзывам посетителей freesoft.ru.


Читаем все полностью...
Demo: Uncanny Fish Hunt, The (Демо-версия)
"Мультяшная" аркада, посвящённая рыбалке с суровых условиях Севера.

Скачать
Читаем все полностью...
Demo: TV Manager 2 (Демо-версия)
Телевизионный "тайкун". Глава маленькой телестанции хочет превратить её в огромную корпорацию. Реклама, новости и кинофильмы - всем этим и предстоит заняться, чтобы достичь поставленной цели.

Скачать
Читаем все полностью...
Patch: Gary Grigsby's War in the East: The German-Soviet War 1941-1945 (Патч до v1.01)
Скачать
Читаем все полностью...
FB - пустая полная база
Дано: база FireBird, 2 шт.
Одна-до заполнения, вторая после. (заполнение происходило при получении писем программой).
Довольно странная вещь произошла таблица, в которую должны были быть слиты письма осталась пустой (в других таблицах без изменений), однако вес базы вырос с 5 до 14 метров.
Но данных не видно О_о

Какой диагноз может быть?
Система боевая, все работало исправно, первый случай такой.
Читаем все полностью...
Целью компьютерного вируса Stuxnet была иранская ядерная программ...
Целью компьютерного вируса Stuxnet, обнаруженного в компьютерах в Иране, могла быть иранская ядерная программа, сообщает The New York Times со ссылкой на мнение экспертов. По мнению специалистов, изучивших код Stuxnet, кибервирус был нацелен на вывод из с...
Читаем все полностью...
Обновление драйверов для High Definition Audio от RealTek (Azalia)
В Сети появилась новая версия драйверов для RealTek High Definition Audio (кодеки ALC-880, ALC-882, ALC-260, ALC-861, ALC-888) под операционные системы Windows Vista/Seven 32/64-bits.
Читаем все полностью...
WINner Tweak 3.9.5
Приложение, включающее в себя опции для настройки операционной системы. Программа позволяет настроить систему по пяти основным категориям: Операционная система, Аппаратное обеспечение, Программное обеспечение, Сеть и Безопасность.
Читаем все полностью...
News: Встретились как-то профессор и адвокат...
Японская студия Level-5 анонсировала новый проект, разрабатываемый совместно с Capcom, 3DS-эксклюзивную адвенчуру, в которой столкнутся герои двух популярных серий: Professor Layton и Ace Attorney. Жанр игры детектив с головоломками. Над сценарием работает...

Читать дальше
Читаем все полностью...