Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Программирование (VB,C#,ASP,.NET): новости, советы, примеры



Выпуск # 490


http://www.kbyte.ru/

 

Новый выпуск!

Здравствуйте!
Очередной выпуск рассылки Kbyte.Ru!

 

Содержание выпуска

Система ЭКСПЕРТ

    Вопрос #001017: Бесплатные программы

    Вопрос #001014: Avi и Mpeg4 в Visual Basic

    Вопрос #000952: Обработка файлов в C# (.NET 2.0)

    Вопрос #000947: Секундомер

    Вопрос #000937: DLOOKUP??

Последнее на форумах

    2 плеера на 2 соундкарты

    Еще раз по поводу отправки почты

    Как узнать автора последнего изменения файла

    Repeater вложенный в Repeater

    81 видеоурок по photoshop

Последние статьи

    Нестандартная форма

    Как узнать размер базы данных MySQL через php

    Взаимодействие с другими сайтами через HTTP (HttpWebRequest и HttpWebResponse)

    Работа с SQL – Запросы

    Использование XML.Serialization

Интересные коды и решения

Юмор на Kbyte.Ru

 

Система ЭКСПЕРТ

 

Система «Эксперт» - уникальная система, которая поможет решить, если не все, то многие Ваши проблемы с программированием и разработкой! Если у Вас есть какой-либо вопрос по программированию или разработке, то Вы всегда можете задать его нашим Экспертам! При этом каких-либо особых действий от Вас не потребуется! Просто отправьте Ваш вопрос на адрес mailto:expert@kbyte.ru, в теме письма укажите тему вопроса, в тексте – сам вопрос, и все! Эксперты дадут Вам ответ в течение 12-24 часов, на тот адрес, с которого Вы отправите вопрос. Все проще простого! Никакой регистрации и заполнение бесконечных форм, просто спросите и получите ответ ;-)


Вопрос #001017: Бесплатные программы

Автор вопроса: Sarj // 03.06.2008 / 08:56

Уважаемые эксперты, поскажите пожалуйста бесплатный аналог Corel Draw. Очень надо...

.....

Отвечает: Алексей Немиро // 03.06.2008 / 09:02

Здравствуйте, Sarj.

http://inkscape.org/

--
С наилучшими пожеланиями,
Немиро Алексей http://aleksey.nemiro.ru/

 

Вопрос #001014: Avi и Mpeg4 в Visual Basic

Автор вопроса: алексей // 02.06.2008 / 12:36

Как можно проигрывать эти форматы в вижал бэйсик? Пример на сайте не работает.

.....

Отвечает: Алексей Немиро // 02.06.2008 / 12:43

Здравствуйте, Алексей.

Можно использовать MediaPlayer. Для этого его нужно подключить к
проекту через меню Project (Проект) -> Components (Компоненты), в
появившемся окне найти и выбрать Windows Media Player. Далее, в
панели инструментов должна появиться иконка плеера, который можно
разместить на форме. Указать файл для проигрывания можно
в свойство URL, или FileName в зависимости от версии проигрывателя.

--
С наилучшими пожеланиями,
Немиро Алексей http://aleksey.nemiro.ru/

 

Вопрос #000952: Обработка файлов в C# (.NET 2.0)

Автор вопроса: Сергей // 09.05.2008 / 18:07

Доброе время суток!
В общих словах, такая задача поставлена передо мной: На веб-странице
пользователь выбирает файл, нажимает кнопку "Импорт" и из этого файла
данные импортируются в таблицу БД Oracle.
Файл должен быть текстовым, первые 2 строки- информация о времени и
логине того, кто выгружал. После них идут строки данных, поля
разделяются симоволом | .
Просьба дать ссылки на документацию по работе с файлами, которые могут
помочь :-)

Отвечает: Алексей Немиро // 12.05.2008 / 10:34

Здравствуйте, Сергей.

Необходимые классы и функции для работы с файлами лежак в пространстве имен System.IO. Также Вам могут понадобиться классы для работы с регулярными выражениями, которые лежат в пространстве имен System.Text.RegularExpressions.
Что касается импорта файлов, то данные можно взять прямо из потока FileUpload.PostedFile.InputStream, передать их в StreamReader и обработать при помощи регулярных выражений.

--
С наилучшими пожеланиями,
Немиро Алексей http://aleksey.nemiro.ru/

 

Вопрос #000947: Секундомер

Автор вопроса: Александр // 08.05.2008 / 17:40

Добрый день!
Как сделать секундомер на сайте kbyte.ru много но вот все они выдают результат как 345сек, а мне надо 1:45:01 то есть в временом формате. Как сделать???

.....

Отвечает: Алексей Немиро // 09.05.2008 / 08:29

Здравствуйте, Александр.

Зная, что в минуте 60 секунд, в часе 60 минут, а в сутках 24 часа, можно легко превратить 345 секунд в нужный формат.
001:
002:
003:
004:
005:
006:
007:
008:
009:
Dim sec As Integer
sec = 345
Dim ssec As Integer, min As Integer, hour As Integer
If sec > 59 Then
 min = Int(sec / 60)
 ssec = sec Mod 60
End If
If min > 59 Then hour = Int(min / 60)
MsgBox sec & " сек. = " & hour & " ч. " & min & " мин. " & ssec & " сек."



--
С наилучшими пожеланиями,
Немиро Алексей http://aleksey.nemiro.ru/

 

Вопрос #000937: DLOOKUP??

Автор вопроса: Алексей // 05.05.2008 / 16:37

Почему те поля формы, которые имеют в ControlSource функцию Dlookup не записывают значение полей в конечную таблицу?

--------------------------------------
Категория: --- MS Access

Отвечает: Алексей Немиро // 06.05.2008 / 05:24

Здравствуйте, Алексей.

Из справки MS Access: Функция Dlookup
При использовании этой функции не учитываются
несохраненные изменения записей подмножества. Если функция
DLookup должна использовать измененные значения, необходимо сначала сохранить
изменения с помощью команды Сохранить запись в меню
Записи, с помощью перемещения фокуса на другую запись или
метода Update.


--
С наилучшими пожеланиями,
Немиро Алексей http://aleksey.nemiro.ru/

 


Чтобы задать Ваш вопрос, отправьте его на адрес expert@kbyte.ru

Раздел Эксперт на сайте Kbyte.Ru

Наверх

 

 

Последнее на форумах

2 плеера на 2 соундкарты | Автор: andreywin
Добавлено: 26.05.2009 / 00:26 | ответов: 0 | просмотров: 27

Суть. Может кто сталкивался. Есть 2 звуковые карты.
На одной надо выводить звук от фильма, а на второй MP3 слушать. Как реализовать?
Пробовал через DirectX, но не получается :(
HELP!
желательно с примерами кодов.

Ответить на это сообщение | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Еще раз по поводу отправки почты | Автор: andreywin
Добавлено: 24.05.2009 / 20:26 | ответов: 5 | просмотров: 109

ОC Windows 7, VS 2008.
Почту невозможно отправить. Вот код:
001:
002:
003:
004:
005:
006:
007:
008:
009:
010:
011:
012:
013:
014:
015:
016:
017:
018:
019:
020:
021:
022:
023:
Imports System.Net.Mail
Imports System.Net.Mail.MailMessage
Imports System.Net.Mail.SmtpClient
'--------------------------------------------------------
Private Sub MailSender() 'отправка почтового сообщения
    Dim mail As New MailMessage()
    Dim smtp As New SmtpClient("smtp.i.ua")
    mail.From = New MailAddress("andreywin@i.ua")
    'Кому
    mail.To.Add("andreywin@i.ua")
    mail.Subject = "COMPUTER1"
    mail.Body = "192.168.0.243"

    smtp.Credentials = New Net.NetworkCredential("andreywin", "pass")
    'smtp.EnableSsl = True
    Try
      smtp.Send(mail)
    Catch
      MsgBox("Не удалось отправить ")
    End Try
  End Sub

Colorized by: Eros.CodeSyntaxColor Engine




HELP!!!!!!!!!!!! не работает! под XP тоже не хочет!

Ответить на это сообщение | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 1 | Автор: Edlin
Добавлено:25.05.2009 / 08:59
Какое именно исключение выдается? Что в нем написано?

001:
002:
003:
Catch ex As Exception

Colorized by: Eros.CodeSyntaxColor Engine

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 2 | Автор: andreywin
Добавлено:25.05.2009 / 20:37
не коннектится к SMTP серверу. А так , код полностью рабочий, проверил с mail.ru :)

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 3 | Автор: andreywin
Добавлено:25.05.2009 / 21:14
System.Net.Mail.SmtpException was unhandled
Message="Сбой при отправке сообщения электронной почты."
Source="System"
StackTrace:
в System.Net.Mail.SmtpClient.Send(MailMessage message) в WindowsApplication1.Form1.MailSender() в D:\WAN_IP MAIL\myip.vb:строка 73 в WindowsApplication1.Form1.Form1_Load(Object sender, EventArgs e) в D:\WAN_IP MAIL\myip.vb:строка 25 в System.EventHandler.Invoke(Object sender, EventArgs e) в System.Windows.Forms.Form.OnLoad(EventArgs e) в System.Windows.Forms.Form.OnCreateControl() в System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible) в System.Windows.Forms.Control.CreateControl() в System.Windows.Forms.Control.WmShowWindow(Message& m) в System.Windows.Forms.Control.WndProc(Message& m) в System.Windows.Forms.ScrollableControl.WndProc(Message& m) в System.Windows.Forms.ContainerControl.WndProc(Message& m) в System.Windows.Forms.Form.WmShowWindow(Message& m) в System.Windows.Forms.Form.WndProc(Message& m) в System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m) в System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m) в System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam) в System.Windows.Forms.SafeNativeMethods.ShowWindow(HandleRef hWnd, Int32 nCmdShow) в System.Windows.Forms.Control.SetVisibleCore(Boolean value) в System.Windows.Forms.Form.SetVisibleCore(Boolean value) в System.Windows.Forms.Control.set_Visible(Boolean value) в System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context) в System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context) в System.Windows.Forms.Application.Run(ApplicationContext context) в Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.OnRun() в Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.DoApplicationModel() в Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.Run(String[] commandLine) в WindowsApplication1.My.MyApplication.Main(String[] Args) в 17d14f5c-a337-4978-8281-53493378c1071.vb:строка 81 в System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args) в System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args) в Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly() в System.Threading.ThreadHelper.ThreadStart_Context(Object state) в System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) в System.Threading.ThreadHelper.ThreadStart()
InnerException: System.Net.WebException
Message="Невозможно соединиться с удаленным сервером"
Source="System"
StackTrace:
в System.Net.ServicePoint.GetConnection(PooledStream PooledStream, Object owner, Boolean async, IPAddress& address, Socket& abortSocket, Socket& abortSocket6, Int32 timeout) в System.Net.PooledStream.Activate(Object owningObject, Boolean async, Int32 timeout, GeneralAsyncDelegate asyncCallback) в System.Net.PooledStream.Activate(Object owningObject, GeneralAsyncDelegate asyncCallback) в System.Net.ConnectionPool.GetConnection(Object owningObject, GeneralAsyncDelegate asyncCallback, Int32 creationTimeout) в System.Net.Mail.SmtpConnection.GetConnection(String host, Int32 port) в System.Net.Mail.SmtpTransport.GetConnection(String host, Int32 port) в System.Net.Mail.SmtpClient.GetConnection() в System.Net.Mail.SmtpClient.Send(MailMessage message)
InnerException: System.Net.Sockets.SocketException
ErrorCode=10060
Message="Попытка установить соединение была безуспешной, т.к. от другого компьютера за требуемое время не получен нужный отклик, или было разорвано уже установленное соединение из-за неверного отклика уже подключенного компьютера 94.100.177.1:25"
NativeErrorCode=10060
Source="System"
StackTrace:
в System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress) в System.Net.Sockets.Socket.InternalConnect(EndPoint remoteEP) в System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure, Socket s4, Socket s6, Socket& socket, IPAddress& address, ConnectSocketState state, IAsyncResult asyncResult, Int32 timeout, Exception& exception)
InnerException:

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 4 | Автор: Edlin
Добавлено:26.05.2009 / 08:34
Судя по тексту исключения, у тебя не устанавливается соединение с SMTP-сервером.

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


Проверь работоспособность сервера.

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 5 | Автор: andreywin
Добавлено:26.05.2009 / 12:27
спасибо , разобрался, проблема в портах SMTP серверов. Например на mail.ru меня пустили по порту 2525 :)

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Как узнать автора последнего изменения файла | Автор: GAV_Alexey
Добавлено: 20.05.2009 / 02:48 | ответов: 6 | просмотров: 142

Здравствуйте.
Необходимо в VBA узнать, кто последним сохранял файл.
Ни на одном форуме никто даже не откликнулся !
Надеюсь, что здесь собрались спецы.

Ответить на это сообщение | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 1 | Автор: GAV_Alexey
Добавлено:20.05.2009 / 03:23
Обращаюсь ко Всем, кто заходит :
Оставляйте, пожалуйста, хотя бы один из выриантов:
НЕ В КУРСЕ
НЕ ПОМНЮ, НО ГДЕ-ТО ЕСТЬ
ТОЧНО НЕТ
ПОПРОБУЮ ПОМОЧЬ

Спасибо за попытки.

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 2 | Автор: Edlin
Добавлено:20.05.2009 / 09:25
Как выяснилось, это возможно. У документа есть коллекция встроенных свойств BuiltInDocumentProperties. Вот этот код вставляет все значения встроенных свойств в текущий документ:

001:
002:
003:
004:
005:
006:
007:
008:
009:
010:
011:
012:
013:
014:
015:
016:
017:
018:
019:
Sub ListProperties()
  Dim rngDoc As Range
  Dim proDoc As DocumentProperty

  Set rngDoc = ActiveDocument.Content

  rngDoc.Collapse Direction:=wdCollapseEnd

  For Each proDoc In ActiveDocument.BuiltInDocumentProperties
    With rngDoc
      .InsertParagraphAfter
      .InsertAfter proDoc.Name & "= "
      On Error Resume Next
      .InsertAfter proDoc.Value
    End With
  Next
End Sub

Colorized by: Eros.CodeSyntaxColor Engine


Тебе нужно свойство с именем 'Last author'.

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 3 | Автор: GAV_Alexey
Добавлено:20.05.2009 / 13:47
Спасибо за отклик. Но...
...Поясню задачу подробнее.
1. Имеется набор Баз Данных (xxx.xml) расположенных на сервере (всего 500-550 баз)
2. в разных городах находятся пользователи. У каждого своя база
3. пользовательская база копируется с сервера на комп пользователя только при условии, что последнее изменение внесено на сервере. (здесь то и необходима проверка)
4. при внесении изменений пользователем база попадает на сервер.
5. размер баз примерно 2-4 Мбайт.
6! ввиду экономии трафика файл открывать нельзя, поэтому необходима проверка неоткрытого файла
7. ранее подходил вариант,
If FileDateTime(MyFile) < FileDateTime(ServerFile) Then.... / но с расширением географии добавились другие часовые пояса


Есть варианты :
А. Продолжать искать выхода по этому пути (через определение Автора последних изменений)
Б. при пересылке базы в одну сторону добывлять к.л. Атрибут, а при пересылке обратно снимать его (и проверять на наличие атрибута)
В. Изучать другие методы обработки информации (Delphi, например) (изучать VBA начал только 1/2 года назад)
Г. Задолбать IT-специалистов, что бы наладили синхронизацию сервера с пользователями (порядка 500-550 человек). (процесс ещё более трудоёмкий)

...а теперь Вопрос на 1 000 000 бессоных часов :-). Какой вариант правильный (меньше трудозатрат с большей отдачей)

Заранее благодарю за правильный :-) ответ
для справки: Код составляет 29 857 355 знаков

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 4 | Автор: Edlin
Добавлено:21.05.2009 / 09:09
http://support.microsoft.com/kb/224351

Здесь находится описание библиотечки, позволяющей получать свойства из файлов Microsoft Office даже когда сам Office не установлен на компьютере. Работает очень быстро (по сравнению с использованием самого Office). Мы использовали ее в коммерческих проектах.

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 5 | Автор: GAV_Alexey
Добавлено:21.05.2009 / 09:20
http://www.translate.ru/url/tran_url.asp?direction=er&template=General&autotranslate=true&url=http://support.microsoft.com/kb/224351

Спасибо Edlin. а вот тоже самое на русском!

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 6 | Автор: Hamper
Добавлено:27.05.2009 / 00:29
Создай еще 1 файл XML на всю базу

<file>
<Name>Название файла</Name>
<Version>№ версии </version>
<Author>Автор</Author>
</file>

Проверяй номер версии
При изменении файла добавляй 1 к версии

Этот файл можно сжать и перед работай закачивать

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Repeater вложенный в Repeater | Автор: abra
Добавлено: 18.05.2009 / 14:58 | ответов: 9 | просмотров: 191

И опять здравствуйте :о)

Есть у меня 2 таблицы в бд. "Lessons" и "Subjects". В первой храняться данные урока(ID, номер лекции, название и т.д.) , а во второй перечень тем(ID,ID лекции которой пренадлижит тама, номер темы, название и т.д.).

Хочу сделать страничку выводящую список лекций и ее тем.

лекция №1 [название]1.[тема]
2.[тема]
3.[тема]
лекция №2 [название]
1.[тема]
2.[тема]
...

Для этого хочу сделать Repeater(для тем) вложенный в Repeater(для лекций)

то, что есть сейчас: .aspx
001:
002:
003:
004:
005:
006:
007:
008:
009:
010:
011:
012:
013:
014:
015:
016:
017:
018:
019:
020:
021:
022:
023:
024:
025:
026:
027:
028:
029:
030:
031:
032:
033:
<asp:Repeater ID="repLectures" runat="server">
  <ItemTemplate>
 <tr>
  <td colspan="2">
   <b><%# DataBinder.Eval(Container.DataItem, "Lesson_num") %>. <%# DataBinder.Eval(Container.DataItem, "Name") %><br /><hr class="Lessons" /></b>
  </td>
 </tr>
 <tr>
  <td style=" width:30px"></td>
  <td> <%#DataBinder.Eval(Container.DataItem, "Description")%></td>
 </tr>
 <tr>
  <td>
   <table>
    <tr>
    <td>
  <asp:Repeater ID="repThemes" runat="server">    
      <ItemTemplate>    
       <td><%# DataBinder.Eval(Container.DataItem, "Theme_num")%>. <a href="Default.aspx?lesson=<%# DataBinder.Eval(Container.DataItem, "Theme_Name") %>"><%#DataBinder.Eval(Container.DataItem, "Title")%></a></td>     
      </ItemTemplate>
     </asp:Repeater>
     </td>
    </tr>
    <tr>
     <td>Вопросы</td>
    </tr>
    </table>    
  </td>
 </tr>
   </ItemTemplate>
 </asp:Repeater>

Colorized by: Eros.CodeSyntaxColor Engine


и .aspx.cs

001:
002:
003:
004:
005:
006:
007:
protected void Page_Load(object sender, EventArgs e)
  {
     repLectures.DataSource = DB.GetItems("S_EducationOnLineStudent_ListLectures");// вызываю свой класс и хранимую процедуру для выборки из таблицы Lessons
    repLectures.DataBind();
  }

Colorized by: Eros.CodeSyntaxColor Engine


Вопрос -
1, как из этого DataBind - а вытащить ID лекци? (DataBinder.Eval("ID_Lesson") не работает)
2, можно ли в принципе делать вложенныеRepeater-ы? :-/

Ответить на это сообщение | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 1 | Автор: Алексей
Добавлено:18.05.2009 / 15:40
1, как из этого DataBind - а вытащить ID лекци?
(DataBinder.Eval("ID_Lesson") не работает)

Если поле ID_Lesson существует, то должно работать.
Если полей ID_Lesson много, то нужно либо в SQL-запросе выбрать только
одно (SELECT Table1.ID_Lesson, field, field FROM ...),
либо прописать для одного из них алиас
(SELECT Table1.ID_Lesson AS alias_name, * FROM), либо
указать полное имя поля с таблицей, например: Table1.ID_Lesson

2, можно ли в принципе делать вложенныеRepeater-ы? :-/

можно, сколько угодно и не только Repeater-ы.
Если будет много уровней или сложная структура данных, лучше
использовать объекты (объектное представление данные, т.е. классы).

Нужно передать данные в DataSource второго Repeater-а.
001:
002:
<asp:Repeater ID="repThemes" runat="server"
DataSource='<%#GetData(Eval("ID_Lesson"))%>'>

В данном случае GetData - имя функции, которая может вернуть либо
DataTable/DataSet, либо любой другой объект.
С классами также, но красивее и кода будет больше.
001:
<%#CType(Container.DataItem, MyClass).ProperyName%>

<%# DataBinder.Eval(Container.DataItem, "Lesson_num") %>

можно просто:
001:
<%#Eval("Lesson_num")%>

Правда, если указывать полное имя поля (с именем таблицы), то:
001:
<%#Container.DataItem("Table1.ID_Lesson")#>


_________________
Это сообщение добавлено через Kbyte.Ru Forum Mail Conference (FMC)

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 2 | Автор: abra
Добавлено:18.05.2009 / 18:16
Если поле ID_Lesson существует, то должно работать.


не работает :о( Пишет:

No overload for method 'Eval' takes '1' arguments

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 3 | Автор: Алексей
Добавлено:19.05.2009 / 02:28
не работает :о( Пишет:
No overload for method 'Eval' takes '1' arguments

Код в студию!
В приведенном ранее куске кода, ID_Lesson нигде не выводится.

No overload for method 'Eval' takes '1' arguments
Должно быть примерно так:
001:
<%#Eval("ID_Lesson")%>


_________________
Это сообщение добавлено через Kbyte.Ru Forum Mail Conference (FMC)

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 4 | Автор: abra
Добавлено:20.05.2009 / 15:39
как в .aspx ловить и выводить значения я знаю :о)
у меня проблема в другом. Я не знаю какэто делать в файле .aspx.cs.

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 5 | Автор: Алексей
Добавлено:20.05.2009 / 15:52
Событие ItemCreated Repeater-а.
e.Item.DataItem("ID_Lesson"), но только if(e.Item.DataItem!=null).

_________________
Это сообщение добавлено через Kbyte.Ru Forum Mail Conference (FMC)

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 6 | Автор: abra
Добавлено:21.05.2009 / 18:53
что то у меня не получается :о( вылетает ошибка

'System.Web.UI.WebControls.RepeaterItem.DataItem' is a 'property' but is used like a 'method'

на строчке
001:
002:
003:
lbl.Text = e.Item.DataItem("ID_Lesson");

Colorized by: Eros.CodeSyntaxColor Engine

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 7 | Автор: Алексей
Добавлено:22.05.2009 / 04:42
001:
lbl.Text = e.Item.DataItem("ID_Lesson");

Возможно скобки нужны квадратные :)
И не нужно забывать о типах данных, присвоить object типу string не
получится, нужно конвертировать в string. Можно метод ToString()
использовать:
e.Item.DataItem("ID_Lesson").ToString()

Вполне возможно, что придется еще DataItem преобразовывать в RepeaterItem:
(RepeaterItem)e.Item.DataItem["ID_Lesson"]
В конечном счете может получиться что-то типа этого:
((RepeaterItem)e.Item.DataItem)["ID_Lesson"].ToString()
Или:
((RepeaterItem)e.Item.DataItem).Row["ID_Lesson"].ToString()

Не на чем проверить.

_________________
Это сообщение добавлено через Kbyte.Ru Forum Mail Conference (FMC)

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 8 | Автор: abra
Добавлено:26.05.2009 / 18:29
не срабатывает ни один из вариантов :о(

на самом деле, самая большая проблема в том, что я не понимаю механизма работы вложенных Repeater-ов.
Вот есть у меня 2 вложенных Repeater-а в .aspx

001:
002:
003:
004:
005:
006:
007:
008:
009:
010:
011:
012:
013:
014:
015:
016:
017:
018:
<asp:Repeater ID="repLectures" runat="server" OnItemCreated="repThemes_ItemCreated">
  <ItemTemplate>
 <tr>
  <td colspan="2" >
   <b><%# DataBinder.Eval(Container.DataItem, "Lesson_num") %>. <%# DataBinder.Eval(Container.DataItem, "Name") %><br /><hr class="Lessons" /></b>
  </td>
 </tr>
  <tr>
  <asp:Repeater ID="repThemes" runat="server">    
      <ItemTemplate>    
       <%#DataBinder.Eval(Container.DataItem, "Title")%>  
      </ItemTemplate>
     </asp:Repeater>
 </tr>
   </ItemTemplate>
 </asp:Repeater>

Colorized by: Eros.CodeSyntaxColor Engine


в .aspx.cs строчка
001:
002:
003:
004:
005:
006:
007:
protected void Page_Load(object sender, EventArgs e)
 {
   repLectures.DataSource = DB.GetItems("S_EducationOnLineStudent_ListLectures");// вызываю свой класс и хранимую процедуру для выборки из таблицы Lessons
  repLectures.DataBind();
 }

Colorized by: Eros.CodeSyntaxColor Engine


выводит данные внешнего Repeater-а, но ГДЕ и КАК я могу перехватить окончание каждой записи для передачи ее во внутренний я не понимаю/не знаю.

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 9 | Автор: Алексей
Добавлено:27.05.2009 / 06:16
Нужно сделать один объект, который будет содержать данные Lectures.
У этого объекта сделать свойство/функцию, которое(ая) будет содержать данные
Themes и передавать его(её) в DataSource repThemes.

Для примера:
001:
002:
003:
004:
005:
006:
007:
008:
009:
010:
011:
012:
013:
014:
015:
016:
017:
018:
019:
020:
021:
022:
023:
024:
025:
026:
027:
028:
029:
030:
031:
032:
033:
034:
035:
036:
037:
038:
039:
040:
041:
public class Lectures
{

private int _Lesson_num = 0;
private string _Name = "";
private List<ThemeItem> _Themes = new List<ThemeItem>();

public int Lesson_num
{
  get { return _Lesson_num; }
  set { _Lesson_num = value; }
}

public string Name
{
  get { return _Name; }
  set { _Name = value; }
}

public List<ThemeItem> Themes
{
  get { return _Themes; }
  set { _Themes = value; }
}

}

public class ThemeItem
{

 private string _Title = "";

 public string Title
 {
  get { return _Title; }
  set { _Title = value; }
 }
}

_______________________
Colorized by: Eros.CodeSyntaxColor Engine

Далее нужно заполнить объекты данными. Лучше написать для этого
отдельные методы внутри этих объектов, и конструтор, чтобы было
удобно, но мне лень это делать:
001:
002:
003:
004:
005:
006:
007:
008:
009:
010:
011:
012:
013:
014:
015:
016:
017:
018:
019:
020:
List<Lectures> myLectures = new List<Lectures>();
// item
Lectures l = new Lectures();
l.Lesson_num = 1;
l.Name = "Имя 1";
// добавляем ThemeItem
ThemeItem t = new ThemeItem();
t.Title = "Заголовок 1";
l.Themes.Add(t);
// --
t = new ThemeItem();
t.Title = "Заголовок 2";
l.Themes.Add(t);
// ... etc.
// добавляем в коллекцию Lectures
myLectures.Add(l)
// ... и еще сколько нужно Lectures

_______________________
Colorized by: Eros.CodeSyntaxColor Engine

Затем отдаем данные в Repeater:
001:
002:
003:
004:
005:
006:
007:
008:
protected void Page_Load(object sender, EventArgs e)
{
  repLectures.DataSource = myLectures
 repLectures.DataBind();
}

_______________________
Colorized by: Eros.CodeSyntaxColor Engine

И сами Repeater-ы:
001:
002:
003:
004:
005:
006:
007:
008:
009:
010:
011:
012:
013:
014:
015:
016:
017:
018:
019:
<asp:Repeater ID="repLectures" runat="server" OnItemCreated="repThemes_ItemCreated">
 <ItemTemplate>
<tr>
 <td colspan="2" >
  <b><%#((Lectures)Container.DataItem).Lesson_num%>. <%#((Lectures)Container.DataItem).Name%><br /><hr class="Lessons" /></b>
 </td>
</tr>
 <tr>
 <asp:Repeater ID="repThemes" runat="server" DataSource='<%#((Lectures)Container.DataItem).Themes%>'>
   <ItemTemplate>  
    <%#((ThemeItem)Container.DataItem).Title%>
   </ItemTemplate>
   </asp:Repeater>
</tr>
  </ItemTemplate>
</asp:Repeater>

_______________________
Colorized by: Eros.CodeSyntaxColor Engine


Либо без объектов, как я уже говорил, использовать функцию, которая будет отдавать
данные в DataSource.
001:
002:
003:
004:
005:
006:
007:
008:
009:
010:
011:
012:
013:
014:
015:
016:
017:
018:
019:
020:
<asp:Repeater ID="repLectures" runat="server" OnItemCreated="repThemes_ItemCreated">
 <ItemTemplate>
<tr>
 <td colspan="2" >
  <b><%# DataBinder.Eval(Container.DataItem, "Lesson_num") %>. <%# DataBinder.Eval(Container.DataItem, "Name") %><br /><hr class="Lessons" /></b>
 </td>
</tr>
 <tr>
 <asp:Repeater       ID="repThemes"       runat="server"
 DataSource='<%#GetThemes((int)Eval("Lesson_num"))%>'>
   <ItemTemplate>  
    <%#DataBinder.Eval(Container.DataItem, "Title")%> 
   </ItemTemplate>
   </asp:Repeater>
</tr>
  </ItemTemplate>
</asp:Repeater>

_______________________
Colorized by: Eros.CodeSyntaxColor Engine

001:
002:
003:
004:
005:
006:
007:
008:
public DataTable GetThemes(int Lesson_num)
{
// код получения данных из БД по указанному Lesson_num
// в данном случае, функция должна вернуть DataTable
}

_______________________
Colorized by: Eros.CodeSyntaxColor Engine

Либо, после создания RepeaterItem искать в нем Repeater и пихать в
него данные (тоже через DataSource, а можно и руками :) ...)

Если вдруг потребуется получить доступ к родителю, то сделать это
можно через одноименное свойство - Parent:
001:
002:
003:
004:
Container.Parent

_______________________
Colorized by: Eros.CodeSyntaxColor Engine


_________________
Это сообщение добавлено через Kbyte.Ru Forum Mail Conference (FMC)

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


81 видеоурок по photoshop | Автор: Ruslannnn
Добавлено: 15.05.2009 / 00:27 | ответов: 0 | просмотров: 71

81 видеоурок по фотошопу
Если вы есчё не стали профессианальным дизайнером, предлагаю вашему вниманию серию видеоуроков Игоря Ульмана. Большая часть уроков рассчитана на начинающих пользователей PhotoShop.
Материал легко доступен для изучения для всех пользователей ПК.
Желаю успехов
Нажмите по ссылке для скачивания: http://depositfiles.com/files/nl1xv8ky1


вот есчё небольшой список ссылок:
01. Коллаж из фотографий сюжетной макросъёмки
http://depositfiles.com/files/1dnehptxa

02. Ручная корреация тона фотографии
http://depositfiles.com/files/cpxb73spj

03. Монтаж снимка с помощью маски слоя
http://depositfiles.com/files/b0gdpwqdl

04. Создание исторической кисти
http://depositfiles.com/files/e4ste4stl

05. Простейший приём осветления
http://depositfiles.com/files/to6xbjxhk

06. Подготовка изображения к печати в фотолаборатории
http://depositfiles.com/files/3nyzu57z0

07. Повышение резкости фотографии
http://depositfiles.com/files/9zx7g9w6x

08. Выделение объекта командой Extract (Извлечение)
http://depositfiles.com/files/d4ii8vek4

09. Создание эффекта наезда фотокамеры
http://depositfiles.com/files/k9teuu6bx

10. Создание логотипа на изображении
http://depositfiles.com/files/x6lgeqal4

11. Устранение эффекта красных глаз с использованием цветовых каналов
http://depositfiles.com/files/8kqf3ov3h

12. Простейшая рамка для фотографии
http://depositfiles.com/files/3lnnbx7jh

13. Создание акварельного рисунка из фотографии
http://depositfiles.com/files/cwglkkmit

14. Комбинация приёмов и инструментов. Пример 1
http://depositfiles.com/files/tdvvnal26

15. Изготовление панорамы
http://depositfiles.com/files/a0sy3crcd

16. Искусственное старение фотографии
http://depositfiles.com/files/71c5yc8z1

17. Обработка фотографии для публикации в Интернете
http://depositfiles.com/files/3cluixwa6

18. Слияние изображений с использованием маски слоя
http://depositfiles.com/files/7w9ac90u6

19. Текст на фотографии
http://depositfiles.com/files/8g63gffd3

20. Заснеженный текст
http://depositfiles.com/files/57mbh5d4w

21. Инструменты аморфного деформирования
http://depositfiles.com/files/plpu97tma

22. Создание молнии из облаков
http://depositfiles.com/files/wchsbk8b5

23. Жжёная бумага и текст по кривой
http://depositfiles.com/files/2ft62nk1w

24. Простейшие способы конвертации цветного изображения в чёрно-белое
http://depositfiles.com/files/8m6eunag3

25. Исправление дефектов с помощью инструментов ретуши
http://depositfiles.com/files/p4wmbqte1

26. Исправление перспективных искажений
http://depositfiles.com/files/sbtkthgn7

27. Создание реалестичного потока света
http://depositfiles.com/files/n0xitxmsc

28. Имитация глубины резко изображенного пространства (ГРИП)
http://depositfiles.com/files/aqsritrsd

29. Заворачивание уголка изображения
http://depositfiles.com/files/c2sjzly7e

30. Основные настройки-1
http://depositfiles.com/files/lrji8pk29

31. Основные настройки-2
http://depositfiles.com/files/a1msrpb9w

32. Основные настройки-3
http://depositfiles.com/files/m7xuiiyeg

33. Имитация динамики в статичном изображении
http://depositfiles.com/files/wolokrxcn

34. Имитация фотосъёмки с проводко
http://depositfiles.com/files/fjx1ljbw2

35. Имитация мягкого фокуса
http://depositfiles.com/files/4y990jy2v

36. Гламурная ретушь
http://depositfiles.com/files/ah27ga82m

37. Творческая обработка фотоснимка
http://depositfiles.com/files/eupwuini8

38. Расширение динамического диапазона
http://depositfiles.com/files/sqk7ggrum

39. Придание объёма плоской картинке
http://depositfiles.com/files/gtgwp5bfq

40. Режимы Умножение и Наложение
http://depositfiles.com/files/e1x7z7qc8

41. Монохромный пейзаж
http://depositfiles.com/files/yynd9oayl

42. Как сделать чтоб реально красиво было
http://depositfiles.com/files/9ek5li35a

43. Преимущество использования большой глубины цвета
http://depositfiles.com/files/t1kky6alz

44. Коррекция передержанного изображения
http://depositfiles.com/files/2s4g6ecah

45. Коррекция цвета с помощью Appli Image
http://depositfiles.com/files/wp5ku1oyu

46. Фотография, которой небыло
http://depositfiles.com/files/814blaylc

47. Перевод в чёрно-белое разделением и наложением каналов
http://depositfiles.com/files/81sw0m1ug

48. Перевод в оттенки серого инструментом Вычисления (Calculations)
http://depositfiles.com/files/gpzcq6nrr

49. Комбинирование цвета и оттенков серого
http://depositfiles.com/files/72s7aqpdy

50. Перевод в оттенки серого имитацией фотоплёнки и фильтров
http://depositfiles.com/files/d222s6fgh

51. Добавление возраста цветной фотографии
http://depositfiles.com/files/egv6tk290

52. Инструмент выделения лассо
http://depositfiles.com/files/rbewjpf34

53. Вечерний портрет (коллаж)
http://depositfiles.com/files/hgih0gunq

54. Трёхмерный коллаж
http://depositfiles.com/files/jqykhkpx5

55. Создание рамки с помощью стиля слоя
http://depositfiles.com/files/leoockvex

56. Расширение динамического диапазона с использованием формата RAW
http://depositfiles.com/files/8plk20oxo

57. Градиентная заливка в корректирующем слое
http://depositfiles.com/files/bt9z2huyx

58. Восстановление фотографий. Инсрумент Levels
http://depositfiles.com/files/e8ixicpjr

59. Работа с текстом
http://depositfiles.com/files/br4vqs116

60. Восстановление старой фотографии
http://depositfiles.com/files/ot0vj8u9l

61. Смешивание слоёв и выделение
http://depositfiles.com/files/lv7ff9oae

62. Коллаж с использованием маски слоя
http://depositfiles.com/files/tew7af5me

63. Корректирующие слои. Пример 1
http://depositfiles.com/files/y7cmea2co

64. Смешивание слоёв и тонирование
http://depositfiles.com/files/q5u0hl8k7

65. Смешивание слоёв и рассеянное свечение
http://depositfiles.com/files/dgrpxf5pz

66. Интеллектуальное повышение резкости
http://depositfiles.com/files/obmqja6qo

67. Внутренняя рамка (оформления снимка)
http://depositfiles.com/files/xj3w2pmp2

68. Коррекция снимка режимами наложения слоёв
http://depositfiles.com/files/fxltv105r

69. Расширение динамического диапазона с помошью HDR
http://depositfiles.com/files/4o9y8dk5a

70. Портретная ретушь. Пример 1.
http://depositfiles.com/files/noq7kiyw6

71. Портретная ретушь. Пример 2.
http://depositfiles.com/files/53t5th82k

72. Фильтр Unsharp Mask
http://depositfiles.com/files/omq8n69ue

73. Замена фона.
http://depositfiles.com/files/d8jqu1nuc

74. Уничтожение цветового мемуара
http://depositfiles.com/files/3f6za7v99

75. Уничтожение монохромного муара
http://depositfiles.com/files/6fap375zw

76. Изменение цвета в пространстве LAB
http://depositfiles.com/files/ght346rmy

77. Инструмент Curves
http://depositfiles.com/files/u9sbckkgk

78. Удаление цифрового шума в LAB
http://depositfiles.com/files/fow0mf398

79. Художественный образ. Threshold (Порог) и Высокий ключ
http://depositfiles.com/files/2bd0doi4g

80. Action загрузка, создание, редактирование
http://depositfiles.com/files/mpuyuf2bv

81. Конвертер RAW - Capture One Pro
http://depositfiles.com/files/gn9jz7ecj

Ответить на это сообщение | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Наверх

 

Последние статьи

Нестандартная форма
Автор: Zhenik Ipatov | добавлено: 05.05.2008 / 12:42 | просмотров: 2683

Первое что бросается в глаза, когда первый раз используешь программу это конечно же её облик, внешний вид. Есть вероятность что если пользователю не понравится внешний вид окна, то он не будет пользоваться продуктом. Значит нам, не побоюсь этого слова, программистам нужно как можно лучше, удобнее, понятнее, красивее и приветливее сделать лицо программы. Нужно как можно эффектнее преподнести программу. С самого первого появления Windows окна получили прямоугольный стандарт и все User Control’ы

Как узнать размер базы данных MySQL через php
Автор: Николай Рудченко | добавлено: 14.02.2008 / 13:01 | просмотров: 3075

В этой небольшой статье вы узнаете, как получить размер вашей базы данных (БД) MySQL используя язык программирования PHP.

Взаимодействие с другими сайтами через HTTP (HttpWebRequest и HttpWebResponse)
Автор: Немиро Алексей | добавлено: 27.07.2007 / 14:01 | просмотров: 9997

В данной статье речь пойдет о том, как можно программно заполнить и отправить Web-форму, а также получить результат с использованием довольно простых классов - HttpWebRequest и HttpWebResponse.

Работа с SQL – Запросы
Автор: Хабибулин А. (aka Bille Gates) | добавлено: 22.07.2007 / 04:43 | просмотров: 23980

В данной статье рассмотрены часто используемые SQL-запросы и приведены примеры их использования.

Использование XML.Serialization
Автор: Немиро Алексей | добавлено: 19.07.2007 / 15:38 | просмотров: 5216

В данном обзоре речь пойдет об использование XML.Serialization в .NET и ее применении на примере сохранения и считывания настроек программы с использованием синтаксиса языка Visual Basic .NET.

 

Статьи на Kbyte.Ru

Наверх

 

Интересные коды и решения

Как поменять стиль у всех контролов на форме (Form)?
Дата добавления: 24.03.2007 / 11:59 | просмотров: 2044 | платформа: VB .NET

Как запретить изменение размера панелей в SplitContainer?
Дата добавления: 26.08.2006 / 12:35 | просмотров: 2214 | платформа: VB .NET

Проверка существования файла
Дата добавления: 31.07.2006 / 12:40 | просмотров: 3445 | платформа: VB

Как получит индекс текущей записи в ListView?
Дата добавления: 23.08.2006 / 19:11 | просмотров: 2851 | платформа: VB .NET

Как программно вызвать окно Установка связи с Интернет?
Дата добавления: 17.08.2006 / 18:12 | просмотров: 2636 | платформа: VB

Как отправить файл в корзину? (!API!)
Дата добавления: 24.03.2007 / 12:23 | просмотров: 2859 | платформа: VB .NET

Программная обработка HTML-элементов управления
Дата добавления: 31.07.2006 / 16:25 | просмотров: 2427 | платформа: ASP .NET (VB)

Как узнать размер рабочей области экрана?
Дата добавления: 23.08.2006 / 19:03 | просмотров: 3464 | платформа: VB .NET

Поиск и замена
Дата добавления: 16.08.2006 / 18:54 | просмотров: 3006 | платформа: VB

Анализ IP-адреса
Дата добавления: 24.03.2007 / 10:56 | просмотров: 2451 | платформа: RegEx

 

Универсальные коды на Kbyte.Ru

Наверх

 

Юмор на Kbyte.Ru

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

 

Рейтинг: 510
Всего голосов: 811
Оцените этот анекдот через E-Mail:
Выберите оценку: 5 | 4 | 3 | 2 | 1

 

Что мы делаем, когда собираемся вместе?? Да водку глушим!! Какую водку?? Да нашу любимую прозрачную, с отличным бодрящим вкусом! Так что у нас никогда не возникает вопроса: "какое пиво пить...?"

 

Рейтинг: 427
Всего голосов: 718
Оцените этот анекдот через E-Mail:
Выберите оценку: 5 | 4 | 3 | 2 | 1

 

Пьяный на вокзале обнимает столб. Женский голос из громкоговорителя объявляет:
- Поезд на Мурманск отправляется в 17 часов 15 минут...
- А ну, дура, повтори ещё раз!
- Повторяю...

 

Рейтинг: 964
Всего голосов: 1409
Оцените этот анекдот через E-Mail:
Выберите оценку: 5 | 4 | 3 | 2 | 1

 

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

 

Рейтинг: 564
Всего голосов: 879
Оцените этот анекдот через E-Mail:
Выберите оценку: 5 | 4 | 3 | 2 | 1

 

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

 

Рейтинг: 539
Всего голосов: 794
Оцените этот анекдот через E-Mail:
Выберите оценку: 5 | 4 | 3 | 2 | 1

 

Вовочка стоит у открытого окна.
- Ты что плачешь, Вовочка?
- Шарик улетел!
- Я куплю тебе десять новых шариков!
- Нет, такой собаки, как Шарик, у меня больше не будет!

 

Рейтинг: 514
Всего голосов: 811
Оцените этот анекдот через E-Mail:
Выберите оценку: 5 | 4 | 3 | 2 | 1

 

Стоят три вампира. Один говорит:
- Вон видите то дерево? За ним деревня. Сейчас я там всех убью.
Возвращается, все пятки в крови.
Второй вампир говорит:
- Вон видите то дерево? Сейчас там всех убью!
Возвращается, по пояс в крови.
Третий говорит:
- Сейчас что будет!!!
Возвращается, весь в крови.
Его спрашивают:
- Как ты это сделал?
Он им отвечает:
- Вон видите то дерево? А Я ЕГО НЕ УВИДЕЛ!!!

 

Рейтинг: 654
Всего голосов: 985
Оцените этот анекдот через E-Mail:
Выберите оценку: 5 | 4 | 3 | 2 | 1

 

- Почему реки мелеют летом?
- Потому что очень жарко, и рыба много пьёт.

 

Рейтинг: 1064
Всего голосов: 1534
Оцените этот анекдот через E-Mail:
Выберите оценку: 5 | 4 | 3 | 2 | 1

 

Билл Гейтс: - Если бы автомобилестроение развивалось такими темпами, как компьютерная промышленность, то сегодня автомобили бы ездили со скоростью 600 км/ч и расходовали 2 литра бензина на 100 километров! General Motors: - Да, но хотелось бы вам чинить ваш автомобиль 2 раза в день?

 

Рейтинг: 1077
Всего голосов: 1518
Оцените этот анекдот через E-Mail:
Выберите оценку: 5 | 4 | 3 | 2 | 1

 

На курсах делового русского языка для английских бизнесменов:
- Артикль "a" переводится на русский язык как "типа", а артикль "the" как "конкретно".

 

Рейтинг: 626
Всего голосов: 1025
Оцените этот анекдот через E-Mail:
Выберите оценку: 5 | 4 | 3 | 2 | 1

 

Весь юмор на Kbyte.Ru

Наверх


Выпуск подготовил: R-KDR-19826

Редактор: Немиро Алексей

Copyright (c) Nemiro AS, 2005-2007


В избранное