Путь разработчика

Сборник полезных примеров и советов для .NET программистов

Архив за Май, 2008

Программное добавление ASP.NET контролов

2008-05-31 от Kosten

При разработке ASP.NET сайтов возникает необходимость программного добавления пользовательских контролов (UserControl) на страницу. Попытка решить проблему “в лоб” через коллекцию Control страницы к нужному результату, как правило не приводит - элемент управления оказывается расположеным не совсем там, где задумывалось.
Возникшая проблема решается достаточно просто. Разместим на ASP.NET странице какой-нибудь контрол-контейнер, на пример, PlaceHolder.

1
<asp:PlaceHolder ID="PlaceHolder1" runat="server"></asp:PlaceHolder>

Теперь просто добавляем наш контрол в этот PlaceHolder

phMyPlace.Control.Add(myNewControl);

И все! Теперь наш контрол располагается в том где нам нужно.

Рубрика: ASP.NET, C# | Комментариев нет »

Сохранение данных приложения.

2008-05-21 от Kosten

Очень часто возникает необходимость сохранять данные приложения или пользователей между сеансами работы. Для решения этой задачи применяют ini или xml файлы, сохраняя в них необходимую информацию, а затем извлекая ее из них.
Для приложений работающих под управлением .NET Framework 2.0 такая возможность уже реализована.
В тестовом примере, который можно скачать по ссылке в конце статьи, создано окно с двумя текстовыми полями (txtLogin и txtPassword) и одной кнопкой (ОК). Значения этих тестовых полей мы и будем сохранять между запусками приложения.
Определим поля в которых мы будем хранить наши данные. Для этого кликнем правой кнопкой мыши по значку проекта и выберем пункт меню “Properties”. В появившемся окне передем на вкладку “Settings”. На этой вкладке определим два поля userLogin и userPwd. Зададим им тип String и область видимости User. Сохраним внесенные изменения. При необходимости можно указать значения по умолчанию.
Чтение данных из этих полей происходит следующим образом:

txtLogin.Text = Properties.Settings.Default.userLogin;
txtPwd.Text = Properties.Settings.Default.userPwd;

Сохрание пользовательских данных происходит так:

Properties.Settings.Default.userLogin = txtLogin.Text;
Properties.Settings.Default.userPwd = txtPwd.Text;
Properties.Settings.Default.Save();

Пример приложения можно скачать тут

Рубрика: .NET, Develop | Комментариев нет »

Получение кода html-страницы

2008-05-15 от Kosten

Очень часто на программистских форумах я сталкивался с вопросом “как программно получить html страничку (ее код)”?
Решение совсем не сложное

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
30
31
32
33
34
    // Create a 'WebRequest' object with the specified url. 
 WebRequest myWebRequest = WebRequest.Create("http://www.contoso.com"); 
 
// Send the 'WebRequest' and wait for response.
WebResponse myWebResponse = myWebRequest.GetResponse(); 
 
// Obtain a 'Stream' object associated with the response object.
Stream ReceiveStream = myWebResponse.GetResponseStream();
 
Encoding encode = System.Text.Encoding.GetEncoding("utf-8");
 
    // Pipe the stream to a higher level stream reader with the required encoding format. 
 StreamReader readStream = new StreamReader( ReceiveStream, encode );
 Console.WriteLine("\nResponse stream received");
 Char[] read = new Char[256];
 
    // Read 256 charcters at a time.    
 int count = readStream.Read( read, 0, 256 );
    Console.WriteLine("HTML...\r\n");
 
while (count > 0) 
{
        // Dump the 256 characters on a string and display the string onto the console.
    String str = new String(read, 0, count);
    Console.Write(str);
    count = readStream.Read(read, 0, 256);
}
 
   Console.WriteLine("");
 // Release the resources of stream object.
 readStream.Close();
 
 // Release the resources of response object.
 myWebResponse.Close();

Приведенный пример легко можно адаптировать под конкретную задачу.

Рубрика: ASP.NET, Develop | 1 комментарий »

Работа с компонентом SerialPort

2008-05-12 от Kosten

В практике часто требуется найти решение на тот или иной вопрос, но не всегда ответ очевиден. Вот так же случилось у меня. В работе столкнулся с тем что надо принять данные с СОМ порта, ну что же подумал я, плевое дело. Бросил на форму компонент SerialPort и ListBox, в событии serialPort1_DataReceived задал для listBox1 новый итем с данными из СОМ порта, код выглядел так:

private void Form1_Load(object sender, EventArgs e)
        {
            serialPort1.Open();  //открываем порт
 
        }
 
        private void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
        {
            listBox1.Items.Add(serialPort1.ReadLine());  //получаем данные
        }

Все просто до безобразия, но запустив проект я не увидел никаких данных.
Написал подобный проект на Borland C++ Builder6, там все работало.
После долгих поисков нашел кусок кода для работы с СОМ портом, помоему на www.codeproject.com, который натолкнул на мысль и появилась реализация через
Callback посылку данных с порта на ListBox. Проект программы, позволяющей получать данные из СОМ-порта можно скачать тут.

Автор Pit-Bul

Рубрика: .NET | Комментариев нет »

Первый релиз SiteMap Editor

2008-05-05 от Kosten

Завершена работа над альфа версией SiteMap Editor. Программа доступна для скачивания на сайте SiteMapEd. Оставляйте Ваши замечания и предложения в комментариях к этому сообщению.

Рубрика: SitemapEditor | Комментариев нет »