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

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



Выпуск # 349


http://www.kbyte.ru/

 

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

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

 

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

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

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

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

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

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

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

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

    проблемы с Combobox на C#

    Login control

    Динамическое добавление ссылок

    Жирная пунктирная линия

    Использование имен переменных в коде на C#

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

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

    Как узнать размер базы данных 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

Наверх

 

 

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

проблемы с Combobox на C# | Автор: densmile
Добавлено: 29.07.2008 / 10:18 | ответов: 1 | просмотров: 67

Всем привет!
подскажите пожалуйста, что надо поменять или настроить чтобы при выборе элемента из списка в comboBoxe текс не уходил за левую границу (такое ощущение, что идет выравнивание по правому краю), а оставался как и был написан с лева на право от левой границе.
Делал новый Combobox тоже самое.
По умолчанию первый элемент становится правильно.

Заранее всем благодарен.

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


Ответ # 1 | Автор: Edlin
Добавлено:30.07.2008 / 09:34
Посмотри свойство RightToLeft.

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


Login control | Автор: Mefisto
Добавлено: 24.07.2008 / 22:43 | ответов: 7 | просмотров: 223

подскажите общие принципы работы с этим контролом, в сети по этому контролу инфы просто нету, или так смотрел, если есть линки на статьи поделитесь :)

P.S Почем я не могу изменить значения контрола из HTML кода? т.е имеем label, и в режиме дизайна html'a я делаю так <% Label1.Text="test" %> но при загрузке страницы текст у label'a не меняется, приходиться использовать Response.Write, что не так?

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


Ответ # 1 | Автор: Алексей
Добавлено:25.07.2008 / 02:32
подскажите общие принципы работы с этим контролом

много букофф придется писать, первым делом посмотри в сторону Membership, если увиденное не понравится, то значит этот контрол тебе не нужен, пока :)

делаю так <% Label1.Text="test" %> но при загрузке страницы текст у label'a не меняется

так лучше не делать, такие вещи делаются в коде, например можно в процедуре Page_Load().

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

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


Ответ # 2 | Автор: Mefisto
Добавлено:25.07.2008 / 03:11
хм, посмотрел в MSDN примеры, я много прочитал про FormsAuthentication, там же и про то как запоминать по кукам, шифрование и т.д, но в статье всё ручками писалось, вот думал через контрол попробовать :) ну буду дальше тогда разбираться, мож наткнусь где на статью именно по контролу
так лучше не делать, такие вещи делаются в коде, например можно в процедуре Page_Load().

Тут много не понятных вещей происходит, например выполняется большой цикл по истечению которого нужно на Label'e сменить текст, я просто думал эти контролы для этого и нужны, а щас попробовал но только через Page_load всё меняется, неуж-то только явой скриптом можно, странно, ещё меняю высоту у TextBox'a, в режиме дизайна всё поменялось как нужно, запускаю а там как было так и есть :) попробую через CSS, вообще можно обращаться к контролам и менять их свойства не только в Page_Load?

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


Ответ # 3 | Автор: Алексей
Добавлено:25.07.2008 / 03:22
хм, посмотрел в MSDN примеры, я много прочитал про FormsAuthentication, там же и про то как запоминать по кукам, шифрование и т.д, но в статье всё ручками писалось, вот думал через контрол попробовать :) ну буду дальше тогда разбираться, мож наткнусь где на статью именно по контролу

собственно там ничего писать не нужно, поставил, и пользуйся :)
нужные свойства можно визуально настроить.

Page_load всё меняется, неуж-то только явой скриптом можно

Page_Load - это не JavaScript :)
При создании файла ASPX в Visual Studio рекомендую поставить галку "Place code in separate file"
думаю тогда все сразу станет ясно :)

ещё меняю высоту у TextBox'a, в режиме дизайна

дизайнер - зло :) руками все делается проще и быстрее.
Высоту TextBox-а при условии, что не стоит TextMode=Multiline
поменять не получится, хотя если css использовать, должно поменяться,
может даже будет кросбраузерно :)

к контролам и менять их свойства не только в Page_Load?

нет :) события бывают разные, Page_Load всего-лишь одно из них.
А где и что менять, зависит от конкретных задач.

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

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


Ответ # 4 | Автор: Mefisto
Добавлено:25.07.2008 / 03:33
ну что то проясняеться
При создании файла ASPX в Visual Studio рекомендую поставить галку "Place code in separate file"

Так и не нашёл :)

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


Ответ # 5 | Автор: Алексей
Добавлено:25.07.2008 / 03:41
В молодости, когда я эмигрировал с классического ASP, я написал
статейку, как руками отделить vb-код от html, правда она уже
беспонтовая и устарела, но думаю поможет http://aleksey.nemiro.ru/Programming/ASP-NET/Otdevnui-ASP-kod.nspx

скрин из VS 2k8 (в 2k5 также, 2k3 не помню) в прикрепленном файле.

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


Ответ # 6 | Автор: Mefisto
Добавлено:25.07.2008 / 23:34
Спасибо нашел теперь, но всё таки не могу разобраться как осуществляется проверка залогинился человек или нет, иемнно через контрол, сутки в мсдн просидел, смотрел примеры, а не нашёл что нужно, помогите плз, вот что пока понял :)
Создаю Login.aspx, в WebConfig пишу:
001:
002:
003:
004:
005:
006:
<authentication mode="Forms">
 <forms name="ASP_XML_Form" loginUrl="login.aspx" protection="All"
  timeout="30" path="/" requireSSL="false" slidingExpiration="true" />
</authentication>

Colorized by: Eros.CodeSyntaxColor Engine

Хотя чувствую что для контрола это не нужно :) далее, в событии контрола Login1_LoggedIn пишу такую вот проверку:
001:
002:
003:
004:
005:
If Login1.UserName = "name" And Login1.Password = "123456" Then

    End If

Colorized by: Eros.CodeSyntaxColor Engine

и дальше не знаю что делать :) вот несколько вопросов:
1.Как проверить поставлена ли галочка "Запомнить меня" и в следующий раз если она была отмечена сразу на страницы попадать а не на форму с контролом
2.Что делать если введены верные параметры? как установить куки(если галка отмечена) и сказать контролу что данные правильны и нужно показывать главную страницу
3.Как проверять что человек залогинен на других страницах вроде Default.aspx и если нет то на форму регистрации отправлять

Вот собстно, помогите плз :) очень хочеться научиться через контрол работать

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


Ответ # 7 | Автор: Алексей
Добавлено:27.07.2008 / 12:12
1. Создаем новый веб-проект
2. Создаем конфиг в корне и пишем (добавляем):
001:
002:
003:
004:
005:
006:
007:
008:
009:
010:
011:
012:
013:
014:
<system.web>
    <authentication mode="Forms">
      <forms  defaultUrl="~/admin"
              loginUrl="~/login.aspx"
              timeout="43200"
              slidingExpiration="true"
      >
        <credentials passwordFormat="Clear">
          <user name="admin" password="admin" />
        </credentials>
      </forms>
      
    </authentication>
</system.web>

3. Создаем страницу login.aspx, на ней размещаем Login control
4. Создаем папку /admin (в корне проекта), в него пихаем Default.aspx
и пишем там в <body>Превед</body> (это очень важно, а то работать не
будет :) ...). Создаем в этой же папке web.config:
001:
002:
003:
004:
005:
006:
007:
008:
009:
010:
<configuration>
    <appSettings/>
    <connectionStrings/>
    <system.web>
        <authorization>
          <allow users="admin"/>
          <deny users="*"/>
        </authorization>
    </system.web>
</configuration>

все, запускаем, пытаемся сразу перейти в папку /admin, должно
редиректнуть на страницу ввода логина и пароля:
логин: admin
пароль: admin

1.Как проверить поставлена ли галочка "Запомнить меня" и в следующий раз если она была отмечена сразу на страницы попадать а не на форму с контролом
2.Что делать если введены верные параметры? как установить куки(если галка отмечена) и сказать контролу что данные правильны и нужно показывать главную страницу
3.Как проверять что человек залогинен на других страницах вроде Default.aspx и если нет то на форму регистрации отправлять

1. if Not Request.IsAuthenticated Then "не авторизирован"
3. Либо сделать свой контрол и разместить его на всех страницах, либо
использовать MasterPage, либо залогинить всю папку, как я написал выше.

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

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


Динамическое добавление ссылок | Автор: Mefisto
Добавлено: 24.07.2008 / 01:31 | ответов: 13 | просмотров: 379

Не знал как назвать тему, назвал как смог :) интересует такой вопрос, возьмем пример этот форум, т.е заходим на любой раздел и в низу страницы есть такие ссылки как:
Page: 1 | 2

Ведь это все генерируется динамически в зависимости от параметров, так вот, как это реализовывается? например у меня есть таблица, скажем при достижении 50 строк (<tr>) нужно сделать переход на вторую страницу где будут выведены остальные строки, и так далее. Или хотя бы в теории. Спасибо

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


Ответ # 1 | Автор: Алексей
Добавлено:24.07.2008 / 03:35
У нас сейчас это реализовано немного через "жо" :)
Делается два запроса к серверу, первый получат количество данных и
уже на основе количества данных рассчитывается необходимое количество
страниц. Далее, стандартными средствами, через DataAdapter получаются
данные для нужной страницы
DataAdapter.Fill(DataSet, iRecordStart, iRecordMax, "DefaultTable")

В идеале, все можно сделать на стороне SQL Server-а, в том числе и
сформировать список страниц, причем все в одном запросе.
SELECT (SELECT COUNT(*) FROM Table1) AS TotalRecordCount, * FROM Table1
Здесь мы получаем количество данных в поле TotalRecordCount, и все данные.

Для постраничного вывода можно использовать один из ниже указанных методов.
001:
002:
003:
004:
005:
SELECT TOP 100 * FROM MyTable
WHERE id NOT IN (SELECT TOP 100 id FROM MyTable ORDER BY id) ORDER BY id

_______________________
Colorized by: Eros.CodeSyntaxColor Engine


001:
002:
003:
004:
005:
006:
007:
008:
009:
010:
011:
012:
REATE PROCEDURE dbo.get_this_page (@rec_per_page int, @page_num int) AS

SELECT identity(int, 1,1) AS RowNum, MyId AS OrigId INTO #tmp FROM mytable
SELECT b.* FROM #tmp AS a
INNER JOIN mytable AS b ON a.OrigId = b.MyId
WHERE a.RowNum BETWEEN (@rec_per_page * @page_num + 1)
  AND (@rec_per_page * (@page_num + 1))

DROP TABLE #tmp

_______________________
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:
021:
022:
023:
024:
025:
026:
027:
028:
029:
030:
031:
032:
033:
034:
035:
036:
037:
038:
039:
040:
041:
042:
043:
044:
045:
046:
047:
048:
049:
050:
051:
052:
053:
054:
055:
056:
057:
058:
059:
060:
061:
062:
063:
064:
065:
066:
067:
068:
069:
070:
071:
072:
073:
074:
075:
076:
077:
078:
079:
080:
081:
082:
083:
084:
085:
086:
087:
088:
089:
090:
091:
092:
093:
094:
095:
096:
097:
098:
099:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
/*
Создаем тестовую таблицу. По полям i1 и d строим уникальные индексы
*/
set nocount on
create table list (
id int identity(1,1) primary key,
i1 int,
i2 int,
d datetime
)
CREATE INDEX ind_i ON list(i1)
CREATE INDEX ind_d ON list(d)
go

set nocount on
declare @i int
declare @m int
set @i=1
while @i<=30
begin
    insert into list (i1) values (null)
    set @i=@i+1
end

/*
Заполняем тестовую таблицу. В поля i1 и i2 заносим числа от 1 до 30, а в d даты с 1 по 30 января
2000 года
*/

select id into #t from list
while exists (select * from list where i1 is Null)
begin
    set @i=rand()*30+1
    set @m=(select max(id) from #t)
    update list
    set i1=@m,
    i2=@m,
    d=convert(datetime,'20020101',112)+@m-1
    where id=@i and i1 is null
    if @@rowcount>0
    delete from #t where id = @m
end
drop table #t

go

--Выбираем "строки" с 11 по 20


/*
Даже если выборка идет по первичному ключу его лучше указать.
В противном случае возможны всякие неожиданности
*/
SELECT identity(int,1,1) AS RowNum, convert(int,id) as id 
into #t FROM list with (index(0))

select t.RowNum as [По id],t.id,l.i1,l.i2,l.d from #t t
join list l on l.id=t.id
where RowNum between 11 and 20
order by RowNum
drop table #t
go

/*
Выборка по полю, по которому нет индекса
Этот код не будет работать так, как надо, несмотря на order by i2
Подробднее об этом написано здесь - http://support.microsoft.com/default.aspx?scid=kb;en-us;273586
*/
SELECT identity(int,1,1) AS RowNum, i2, convert(int,id) as id
into #t FROM list
order by i2

select t.RowNum as [По i2],l.id,l.i1,t.i2,l.d
from #t t
join list l on l.id=t.id
where RowNum between 11 and 20
order by RowNum
drop table #t
go

/*
Выборка по полю, по которому индекс построен
Этот код делает то, что надо
*/
SELECT identity(int,1,1) AS RowNum, i1, convert(int,id) as id i
nto #t FROM list with (index(ind_i))

select t.RowNum as [По i1],t.id,t.i1,l.i2,l.d
from #t t
join list l on l.id=t.id
where RowNum between 11 and 20
order by RowNum

drop table #t
go

/*
Выборка по дате в порядке убывания
*/

SELECT identity(int,1,1) AS RowNum, d, convert(int,id) AS id
INTO #t FROM list with (index(ind_d))
ORDER BY d DESC

SELECT t.RowNum AS [По d],t.id,l.i1,l.i2,t.d
FROM #t t
JOIN list l ON l.id=t.id
WHERE RowNum BETWEEN 11 AND 20

DROP TABLE #t
go
DROP TABLE list

_______________________
Colorized by: Eros.CodeSyntaxColor Engine


Еще, можно использовать GridView, он сам все сделает, только нужно
поставить свойство AllowPaging = True, правда ссылки на страницах
создаются JavaScript-ые, если это не критично, то можно его использовать.

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

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


Ответ # 2 | Автор: Mefisto
Добавлено:24.07.2008 / 04:17
Во блин, спасибо за ответ, только я запутался, я знаю лишь некоторые команды SQL, чтение/запись/создание, но тут так и не разобрался, можно простенький пример? у меня ASP.NET + VB.NET, и SQL Server, есть таблица table1 в нём 2 colums'a это id и txt, в id я поместил 100 записей, я просто не понял немного вот это:
001:
002:
003:
Select (Select COUNT(*) FROM Table1) As TotalRecordCount, * FROM Table1

Colorized by: Eros.CodeSyntaxColor Engine

и это
001:
002:
003:
004:
Select TOP 100 * FROM MyTable
WHERE id Not In (Select TOP 100 id FROM MyTable ORDER BY id) ORDER BY id

Colorized by: Eros.CodeSyntaxColor Engine

Остальное меня вообще убило :) если не трудно вот на основе того что сейчас есть и описано выше, как можно сделать :) просто синтаксис вообще не знаком и не понятен )

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


Ответ # 3 | Автор: Алексей
Добавлено:24.07.2008 / 14:23
SELECT TOP 10 * FROM table1
WHERE id NOT IN (SELECT TOP 10 id FROM table1 ORDER BY id) ORDER BY id

10 нужно умножать на текущую страницу, т.е. примерно:
myCmd.CommandText = "SELECT TOP 10 * FROM table1 WHERE id NOT IN (SELECT TOP " & (10 * 1).ToString() & " id FROM table1 ORDER BY id) ORDER BY id"

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

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


Ответ # 4 | Автор: Mefisto
Добавлено:24.07.2008 / 16:54
Спасибо, сейчас вытаскивает по 10 строк, только мы всё про работу базы говорим, а как же ссылки добавлять? теоретически представляю как, но практически что то не выходит

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


Ответ # 5 | Автор: Mefisto
Добавлено:24.07.2008 / 20:29
Вообщем посидел подумал, реализовал всё таки, только как то тоже через "жо" :) делаю так:
При загрузке страницы получаем кол-во всех строк в таблице, далее делим это кол-во на кол-во строк которые стоит отображать, в итоге получаем кол-во страниц, ну и в цикле заполняем через Response.Write ссылки на страницы, а при нажатии на страницу выполняем этот запрос:
001:
002:
003:
Select TOP 10 * FROM table1 WHERE id Not In (Select TOP " & (10 * 1).ToString() & " id FROM table1 ORDER BY id) ORDER BY id

Colorized by: Eros.CodeSyntaxColor Engine

и в место единицы подставляем номер страницы которую нужно вывести, вот в принципе всё, как такая реализация?

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


Ответ # 6 | Автор: Алексей
Добавлено:25.07.2008 / 02:23
Спасибо, сейчас вытаскивает по 10 строк, только мы всё про работу базы говорим, а как же ссылки добавлять? теоретически представляю как, но практически что то не выходит

001:
002:
003:
004:
005:
006:
007:
КоличествоСтраниц = КоличествоВсехДанных / КоличествоДанныхНаОднойСтранице
For i As Integer = 1 To КоличествоСтраниц
 literal1.Text &= String.Foramt("<a href='/default.aspx?page={0}'>{0}</a>", i)
Next

_______________________
Colorized by: Eros.CodeSyntaxColor Engine

там еще с остатками надо по шаманить (может int(...) использовать).

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

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


Ответ # 7 | Автор: Алексей
Добавлено:25.07.2008 / 02:29
При загрузке страницы получаем кол-во всех строк в таблице

да, можно так, но можно одним запросом обойтись
001:
002:
003:
004:
SELECT TOP 10 *, (SELECT COUNT(*) FROM table1) AS TotalRecordCount FROM table1 WHERE id NOT IN (SELECT TOP " & (10 * 1).ToString() & " id FROM table1 ORDER BY id) ORDER BY id

_______________________
Colorized by: Eros.CodeSyntaxColor Engine

в поле TotalRecordCount будет количество всех записей в таблице
table1, можно дергать его из любой строки, если строк нет, значит записей ноль :)

заполняем через Response.Write

контролов для этого дела в ASP .NET уйма. В предыдущем ответе я
показал на примере <asp:Literal />.

и в место единицы подставляем номер страницы которую нужно вывести

да,
Request("page"), но лучше
Dim page As Integer = 1
If Not Integer.TryParse(Request("page"), page) Then page = 1
...(10 * page).ToString()...

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

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


Ответ # 8 | Автор: Алексей
Добавлено:25.07.2008 / 02:50
вот так еще лучше
If Not Integer.TryParse(Request("page"), page) OrElse page < 1 Then page = 1

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

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


Ответ # 9 | Автор: Mefisto
Добавлено:25.07.2008 / 03:16
в поле TotalRecordCount будет количество всех записей в таблице

я так понял поле это нужно создать в таблице и в него будет результат выведен кол-ва строк? остальное вроде всё понятно кроме вот этого
там еще с остатками надо по шаманить (может int(...) использовать).

Я просто округлял в большую сторону, даже если 1 запись то она идёт на новую страницу, вроде работает :)

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


Ответ # 10 | Автор: Алексей
Добавлено:25.07.2008 / 03:25
я так понял поле это нужно создать в таблице и в него будет результат выведен кол-ва строк? остальное вроде всё понятно кроме вот этого

ничего не нужно создавать, это типа алиас.

Я просто округлял в большую сторону, даже если 1 запись то она идёт на новую страницу, вроде работает :

int по-моему тоже должен округлять в плюс: int(10/8)

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

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


Ответ # 11 | Автор: Mefisto
Добавлено:25.07.2008 / 03:32
Разобрался, спасибо!

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


Ответ # 12 | Автор: Mefisto
Добавлено:27.07.2008 / 04:58
Оказывается про кое что забыл :) а как реализовывается максимальное кол-во страниц? т.е допустим как тут, 10 страничек и чтобы получить список с 10-20 нужно ссылочку нажать и т.д, по 1 странице я сообразил, а как по 10 показывать что то не могу понять, есть идеи?

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


Ответ # 13 | Автор: Алексей
Добавлено:27.07.2008 / 12:18
непонятно что именно непонятно :)
я уже вроде все написал
001:
002:
003:
004:
005:
006:
007:
КоличествоСтраниц = КоличествоВсехДанных / КоличествоДанныхНаОднойСтранице
For i As Integer = 1 To КоличествоСтраниц
literal1.Text &= String.Foramt("<a href='/default.aspx?page={0}'>{0}</a>", i)
Next

_______________________
Colorized by: Eros.CodeSyntaxColor Engine

001:
002:
003:
004:
SELECT TOP 10 *, (SELECT COUNT(*) FROM table1) AS TotalRecordCount FROM table1 WHERE id NOT IN (SELECT TOP " & (10 * Текущая страница).ToString() & " id FROM table1 ORDER BY id) ORDER BY id

_______________________
Colorized by: Eros.CodeSyntaxColor Engine


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

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


Жирная пунктирная линия | Автор: Stuart
Добавлено: 23.07.2008 / 18:38 | ответов: 0 | просмотров: 69

Здравствуйте Друзья!
Подскажите пожалуйста, как в VB6 нарисовать толстую пунктирную линию.

Если рисовать просто пунктирную линию, то я делаю так:
001:
002:
003:
004:
005:
Me.ScaleMode ='3-Pixel
Me.DrawStyle ='3-пунктирная линия
Me.Line (0, 15)-(300, 15) 'Рисую линию

Colorized by: Eros.CodeSyntaxColor Engine

Если просто жирную, то так:
001:
002:
003:
004:
Me.DrawWidth = 2
Me.Line (0, 15)-(300, 15)

Colorized by: Eros.CodeSyntaxColor Engine

Я думал если сделать, вот так вот:
001:
002:
003:
004:
005:
006:
Me.ScaleMode = 3
Me.DrawWidth = 2
Me.DrawStyle = 1
Me.Line (0, 15)-(300, 15)

Colorized by: Eros.CodeSyntaxColor Engine

То у меня нарисуется жирная пунктирная линия, но не фига=(
Может кто знает как нарисовать такую линию ?

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


Использование имен переменных в коде на C# | Автор: Юрий.Н
Добавлено: 23.07.2008 / 14:29 | ответов: 5 | просмотров: 211

Здравсвуйте,
Аппликация пишется на C#, ASP.NET 2.0.
Необходимо создать универсальный генератор линков, где по заданному шаблону (маске) будет формироваться URL.
Пример:
...
private string p_regionName = "New Vasuki";
private string p_itemId = "2335";
private string p_urlMask =
"http://www.mysite.info/{%p_regionName%}/products/{%itemId%}/";
URL mask:

public string GetUrl(){
... ... ...
return "http://www.mysite.info/New Vasuki/products/2335/";
}

Метод GetUrl() будет использоваться в разных классах, поэтому имена переменных будут меняться. В C# нет функции eval, можно ли как-то эту задачу?

Спасибо

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


Ответ # 1 | Автор: Алексей
Добавлено:23.07.2008 / 15:03
либо
String.Format("http://www.mysite.info/{0}/products/{1}/", "hello", "world");
либо, можно регулярные выражения использовать.
Если нужен url-реврайтер, то http://aleksey.nemiro.ru/Soft/Complete-Solutions/UrlRewritingNet20.nspx
там регулярки используются, в конфиге прописываются.

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

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


Ответ # 2 | Автор: Юрий.Н
Добавлено:23.07.2008 / 16:32
Спасибо, Алексей, но это не совсем то... Я просто плохо объяснил задачу... Наверное решение все-таки в Reflection. Тут на эту тему уже сложилась переписка :о)
http://www.gotdotnet.ru/Forums/Web/571230.aspx

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


Ответ # 3 | Автор: Алексей
Добавлено:23.07.2008 / 16:51
Почитал, по-моему все излишне усложняется. Проще всего использовать
String.Format, шаблон url-а хранить для каждых типов продуктов в базе и по нему
уже формировать url.
./product/[prod_id], к другому - ./cha-cha-cha/products/[prod_id]/chu-chu-chu, и т.д.

т.е. в базе будет
./product/{0}
и
./cha-cha-cha/products/{0}/chu-chu-chu
Через String.Format пихать нужные параметры, и все..

Я хочу сделать для каждого продукта свой класс (саб-класс
родительского), одним из свойств которого будет LinkMask, а метод
наложения переменных (в каждом случае разных) на эту маска поместить в
родительский класс. Тогда массив продуктов становиться очень легким
для показа в любых ипостасях.

вполне подходящий ответ, простой и достаточно универсальный, для родителя
001:
002:
003:
004:
005:
006:
007:
008:
009:
010:
011:
private static string GetUrl(string urlTemplate, params object[] urlParameters)
  {
    return string.Format(urlTemplate, urlParameters);
  }
  private static string GetUrl(params object[] urlParameters)
  {
    return GetUrl("http://{0}/{1}...", urlParameters);
  }

_______________________
Colorized by: Eros.CodeSyntaxColor Engine


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

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


Ответ # 4 | Автор: Алексей
Добавлено:23.07.2008 / 16:54
У каждого, естес-с-с-но, есть id, name, а иногда и groupName.

а если все более ли менее стабильно, то лучше использовать
UrlRewriter, написать несколько шаблонов и все.

001:
002:
003:
004:
005:
006:
007:
008:
009:
010:
011:
012:
013:
<add name="ShowProduct"
     virtualUrl="^~/([\w\d\-\+]+)/([\w\d\-\+]+).aspx"
     rewriteUrlParameter="ExcludeFromClientQueryString"
     destinationUrl="~/Show.aspx?group=$1&amp;product=$2"
     ignoreCase="true"
    />

   <add name="ShowProduct2"
     virtualUrl="^~/([\w\d\-\+]+).aspx"
     rewriteUrlParameter="ExcludeFromClientQueryString"
     destinationUrl="~/Show.aspx?product=$1"
     ignoreCase="true"
    />


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

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


Ответ # 5 | Автор: Юрий.Н
Добавлено:23.07.2008 / 17:01
Вы правы. Я и сам, копнул с рефлекшн поглубже, худо стало... Так что , мы пойдем другим путем :о)

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


Наверх

 

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

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

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

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

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

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

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

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

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

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

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

 

Статьи на Kbyte.Ru

Наверх

 

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

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

Как очистить корзину?
Дата добавления: 24.03.2007 / 11:35 | просмотров: 1422 | платформа: VB .NET

Как узнать IP-адрес посетителя?
Дата добавления: 01.09.2006 / 12:23 | просмотров: 3698 | платформа: ASP .NET (VB)

Проверить существование файла
Дата добавления: 31.07.2006 / 17:34 | просмотров: 1587 | платформа: ASP .NET (VB)

Как преобразовать цвет в Web-стандарт?
Дата добавления: 24.03.2007 / 11:37 | просмотров: 1230 | платформа: VB .NET

Как динамически добавить HTML-элемент управления?
Дата добавления: 17.08.2006 / 17:49 | просмотров: 1920 | платформа: ASP .NET (VB)

Как преобразовать десятичное число в восьмиричное?
Дата добавления: 16.08.2006 / 20:36 | просмотров: 1713 | платформа: VB

Изменение регистра текста
Дата добавления: 31.07.2006 / 12:30 | просмотров: 1532 | платформа: VB

Как загрузить изображение в PictureBox/Image?
Дата добавления: 16.08.2006 / 19:55 | просмотров: 1898 | платформа: VB

Как сделать секундомер?
Дата добавления: 16.08.2006 / 23:26 | просмотров: 2196 | платформа: VB

 

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

Наверх

 

Юмор на Kbyte.Ru

Встречаются два программиста:
- Я вчера девушку встретил, у нее такие Properties!
- Ерунда… Я вчера к ней подкатывал - она Read Only…

 

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

 

Сетевые технологии и сексуальная ориентация:
1. Клиент-сервер - мужчина и женщина.
2. Сервер-сервер - лесбиянки.
3. Клиент-клиент - гомосексуалисты.
4. Сам себе клиент и сам себе сервер - онанист.

 

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

 

Прикол с Файн Ридером. Это программа такая, которая вроде как распознаёт текст введённый со сканера. Чуство юмора у неё сродни её брату - переводчику Lingvo (видать семейное). Так вот. Недавно приятель попросил отсканировать и естессно распознать для реферата одну медицинскую книжку. Нужно сказать, книжка была здоровая и на месте сгибов Великий распознаватель вместо некоторых букв ставил разные палочки (типа / ] l и пр.), по его мнению более похожие на оригинал. Я значит потом читаю (как раз описание какой-то страшной болезни, мурашки по коже), исправляю недочёты и вот вижу такой перл, цитирую: "...вероятность летального исхода после этой болезни незначительная :]" это он в конце смайлик добавил, вроде как понял шутку :)))

 

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

 

Однажды меня вот так достали рекламой (повадились мне на факс спам кидать - бумагу тратят гады, а на нужный факс по закону подлости всегда бумаги не хватит), позвонил в офис от кого пришел факс (три метра бумаги) - вежливо попросил исключить мой номер из их рассылок. Через час от них пришел еще один факс длинной в метр ( видимо уже в воспитательных целях).
Пришлось настроить винфакс и в 24-00 по местному времени послам им в офис текстовой файл весом в 600 кб (инструкцию по проверке трансформаторов на подтанциях и проведения на них регламентных работ). Файл шел до того момента пока у них бумага не кончилась. Утром позвонил
и спросил: "Вы наш факс получили?". Реакция была блеск :))))))

 

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

 

Приходит девица под утро с интернет-тусовки, вся в синяках, заплаканная:
- Мама! Меня хакнули!

 

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

 

- Как достать черную икру?
- Она переименована в "рыбьи яйца": десяток - рубль тридцать.

 

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

 

Вчера астрономы "разжаловали" Плутон. Жители бывшей планеты обещают направить жалобу в Страсбургский суд.

 

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

 

Директору пивзавода
от группы программистов
Заявление
Просим Вас предоставить выделенную линию со скоростью 0,5 л/сек.

 

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

 

Новый русский заходит в ресторан, подзывает официанта и говорит:
- Ваше фирменное блюдо, быстро.
Официант убегает и через несколько минуты приносит мидии.
Новый русский шепотом:
- Слышь браток подскажи как их есть то?
Официант:
- Ну вы поделываете в раковине небольшую дырочку и высасываете содержимое.
Новый русский проделывает дырочку. Сосет, сосет, а из раковины ничего не высасывается. Тогда он подносит ее к лицу и смотрит в внутрь. А там моллюзг расперса и говорит:
- Чего смотришь, соси дальше.

 

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

 

Один программер любил компьютеры. Пока его за этим не застукали...

 

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

 

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

Наверх


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

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

Copyright (c) Nemiro AS, 2005-2007


В избранное