powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Как создать CUSTOM-контрол
7 сообщений из 7, страница 1 из 1
Как создать CUSTOM-контрол
    #33960470
Фотография vbnet2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Почему бы не сделать предположим так:
- На странице у тя имеется картика 
<img src="image.aspx?<параметры твоей карты>" />
- А в image.aspx формируешь и выводишь изображение на событии Page_Load.

// Вот как можно вывести jpeg
Respone.Clear();
Response.ContentType = "image/jpeg";
Response.BinaryWrite(imageData);
// в imageData твоя итоговая картинка
Response.End();
Вот я несколько раз пытался такой способ преобразовать в CUSTOM-Control - к сожалению не могу придумать как это сделать...
Кто-нибудь зацепку подскажет?
...
Рейтинг: 0 / 0
Как создать CUSTOM-контрол
    #33962400
enot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ну можно так сделать.))
Создать КАСТОМ контрол. Например такой:
    Public перем 1 ...и т.д    
    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As  System.EventArgs) Handles MyBase.Load
         End Sub
    Protected Overrides Sub Render(ByVal output As System.Web.UI.HtmlTextWriter)
      _text = "<img width=" & widthI & " height=" & heightI & " SRC=""" & path & "?width= " & widthI & "&height=" & heightI & """ border=1>"
        output.Write(_text)
    End Sub

Теперь на нужной нами страничке располагаем
<%@Register TagPrefix="uc1" Namespace="Mylib" Assembly="Mylib"%>

а в коде хтмле как обычный юзер-контрол. ДА, такие вот КАСТОМ контролы лучше делать в отдельном проекте. А ДЛЛ цеплять к текущему проекту. Что нужно сделать и в данном случае.
так! а в вышеуказннном SRC указать путь к страничке, код-бехайнд которой таков (PAGE_LOAD):
Dim bmp As Bitmap = NewImageBlaBla()
  Response.ContentType = "image/jpeg"
        bmp.Save(Response.OutputStream, ImageFormat.Jpeg)

Как-то так. Немножечко путанно вышло, но обращайтесь по мере наступления непонимания.кто сказал, что будет легко?)))
...
Рейтинг: 0 / 0
Как создать CUSTOM-контрол
    #33963628
Фотография vbnet2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ага. Спасибо. Получается с рисунками я затупил вот в этом:
Код: plaintext
 bmp.Save(Response.OutputStream, ImageFormat.Jpeg)
Потому что если я писал их просто
Код: plaintext
Response.BinaryWrite(CType(DR( 0 ), Byte()))
и на картинке был только крестик, конкретно рисунка не получалось (но рисунок получается если писать так не в HTML-тег, а из ASPX-файла).

Но это как бы только пол-беды. Вторая половина моей проблемы в другом.
Получается что надо эту ссылочную страничку размещать все-таки не в библиотеке, где лежит сам CUSTOM, а в основном проекте.
А это напряг, ибо это контрол простой (он тянет за собой одну лишнюю страничку), а есть подобные контролы куда более сложные, которые тянут за собой по 4-5 страничек.
Соотвественно, получается что просто получить это на ToolBox мало, чтоб пользоваться надо помнить еще про дополнительные странички (код которых ДЛЯ ВСЕХ МОИХ ПРОЕКТОВ ОДИНАКОВ).

Те, получается, что вторая половина беды - как и вот это
Код: plaintext
1.
2.
Dim bmp As Bitmap = NewImageBlaBla()
Response.ContentType = "image/jpeg"
bmp.Save(Response.OutputStream, ImageFormat.Jpeg)
впихнуть во внутрь CUSTOM, чтоб лежал себе контрольчик на ToolBox - и не надо было помнить, что для него еще какие-то странички нужны.

Реально вот этот контрол в работающем виде у меня вот так сейчас выглядит:
Код: plaintext
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.
Partial Class SQL_Image
    Inherits System.Web.UI.UserControl

    Private _ConnectionStringsName As String = ""
    Private _SelectStatement As String = ""

    Public Property ConnectionStringsName() As String
        Get
            ConnectionStringsName = _ConnectionStringsName
        End Get
        Set(ByVal value As String)
            _ConnectionStringsName = value
        End Set
    End Property

    Public Property SelectStatement() As String
        Get
            SelectStatement = _SelectStatement
        End Get
        Set(ByVal value As String)
            _SelectStatement = value
        End Set
    End Property

    Public Sub Show(ByVal ConnectionStringsName As String, ByVal SelectStatement As String)
        Image1.ImageUrl = "SQLImage.aspx?ConnectionStringsName=" & ConnectionStringsName & "&SelectStatement=" & SelectStatement
    End Sub

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        If _ConnectionStringsName <> "" And _SelectStatement <> "" Then Image1.ImageUrl = "SQLImage.aspx?ConnectionStringsName=" & _ConnectionStringsName & "&SelectStatement=" & _SelectStatement
    End Sub
End Class
+ сама страничка, на которую он ссылается:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
Imports System.Data.SqlClient
Partial Class SQLImage
    Inherits System.Web.UI.Page
    Dim CN As SqlConnection, CMD As SqlCommand, DR As SqlDataReader
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        CN = New SqlConnection(ConfigurationManager.ConnectionStrings(Request.QueryString("ConnectionStringsName")).ConnectionString)
        CN.Open()
        CMD = New SqlCommand(Request.QueryString("SelectStatement"), CN)
        DR = CMD.ExecuteReader
        If DR.Read Then
            If DR( 0 ).Length >  0  Then   'в SQL-поле NULL
                Response.ContentType = "image/bmp"
                Response.BinaryWrite(CType(DR( 0 ), Byte()))
            End If
        End If
        DR.Close()
        CN.Close()
    End Sub
End Class
Как я понял, если саму страничку SQLImage.ASPX оставить, как бесплатную примочку к контролу, то надо писать не просто поток байт, а bmp.Save,
то эта штука пройдет даже как HTML-контрол...
Но как и саму страничку SQLImage.ASPX всунуть в контрол, чтоб он за собой сопли не тащил в виде отдельных страничек?
...
Рейтинг: 0 / 0
Как создать CUSTOM-контрол
    #33964985
enot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ну да. Вы все верно описали... и про эти дополнительные странички - прямо в "яблочко". Я ,признаться, долго долбался сам с этим.) Удачи.кто сказал, что будет легко?)))
...
Рейтинг: 0 / 0
Как создать CUSTOM-контрол
    #33965259
Фотография vbnet2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
Я ,признаться, долго долбался сам с этим
Дык идейку-то подкиньте, как разруливать с этими доп. страничками. Это ж самое главное.
Какой смысл в CUSTOM-контроле, в котором куча URL с параметрами "?", и который будет тащить за собой еще множество страниц. Тут вся фишка - как все это инкапсулировать в одну библиотеку. И понятно, что это сделать можно, ведь каждая отдельная ссылочная страничка - это ж тоже просто DLL...
...
Рейтинг: 0 / 0
Как создать CUSTOM-контрол
    #33967014
Фотография vbnet2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
UP
...
Рейтинг: 0 / 0
Как создать CUSTOM-контрол
    #33967607
Фотография vbnet2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
UP
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Как создать CUSTOM-контрол
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]