Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Создание control - ов!!! / 13 сообщений из 13, страница 1 из 1
26.08.2006, 09:59
    #33944557
Seven+
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание control - ов!!!
Возникла проблема такого рода - необходимо создать N - ое количество контролов, используя при этом XML файл как мета-описание данных контролов (ID,style,position,text).Каким образом это можно сделать? /пример приветствуется ) /
...
Рейтинг: 0 / 0
26.08.2006, 13:14
    #33944651
K&Y
K&Y
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание control - ов!!!
Почитай про xsl.
...
Рейтинг: 0 / 0
26.08.2006, 13:55
    #33944679
Seven+
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание control - ов!!!
K&YПочитай про xsl. Зачем мне таблица стилей? Мне нужно в VS.Net при загрузке страницы прочитать XML файл, определить ниименование контролов и динамически создать их на форме.
...
Рейтинг: 0 / 0
28.08.2006, 13:23
    #33946656
Seven+
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание control - ов!!!
Неужели никто незнаком с динамическим созданием контролов (ч/з классы)???
...
Рейтинг: 0 / 0
28.08.2006, 16:56
    #33947497
RuneLord
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание control - ов!!!
www.myxaml.com
...
Рейтинг: 0 / 0
28.08.2006, 17:08
    #33947531
ЧеГевара
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание control - ов!!!
Seven+Неужели никто незнаком с динамическим созданием контролов (ч/з классы)???
у тебя с чем проблема то?
с чтением xml или с созданием контролов?
например:
Код: plaintext
1.
2.
3.
4.
TextBox txtBox = new TextBox();
txtBox.ID = Field;
txtBox.Width=Unit.Percentage( 100 );
tdData.Controls.Add(txtBox);	
...
Рейтинг: 0 / 0
28.08.2006, 18:34
    #33947839
Seven+
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание control - ов!!!
ЧеГевара Seven+Неужели никто незнаком с динамическим созданием контролов (ч/з классы)???
у тебя с чем проблема то?
с чтением xml или с созданием контролов?
например:
Код: plaintext
1.
2.
3.
4.
TextBox txtBox = new TextBox();
txtBox.ID = Field; ----?????
txtBox.Width=Unit.Percentage( 100 );
tdData.Controls.Add(txtBox);  ------tdData ???????????	
Действительно в дальнейшем возникнут проблемы со чтением/записем XML. Как работать с элементами XML разобрался, а вот с атрибутами (как удобный и оптимальный вариант) возникнут проблемы. Да еще, предоставленный пример на C# не пашет, пробовал разобраться в чем касячек так и не понял :-(
...
Рейтинг: 0 / 0
28.08.2006, 19:02
    #33947926
ЧеГевара
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание control - ов!!!
Seven+Действительно в дальнейшем возникнут проблемы со чтением/записем XML. Как работать с элементами XML разобрался, а вот с атрибутами (как удобный и оптимальный вариант) возникнут проблемы. Да еще, предоставленный пример на C# не пашет, пробовал разобраться в чем касячек так и не понял :-(
этож просто пример динамического создания контрола :)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
HtmlTable table = new HtmlTable();
HtmlTableRow tr = new HtmlTableRow();
HtmlTableCell tdLbl = new HtmlTableCell("TD");
HtmlTableCell tdData = new HtmlTableCell("TD");
Label lbl = new Label();
lbl.Text = "hello world!";
tdLbl.Controls.Add(lbl);
tdLbl.Width = "200px";
tr.Cells.Add(tdLbl);
TextBox txtBox = new TextBox();
tdData.Controls.Add(txtBox);
tr.Cells.Add(tdData);
table.Rows.Add(tr);
this.Controls.Add(table);
как видишь - здесь мы динамически создаем таблицу и помещаем в нее лейбл и текстбокс.
...
Рейтинг: 0 / 0
28.08.2006, 19:26
    #33947977
Seven+
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание control - ов!!!
как видишь - здесь мы динамически создаем таблицу и помещаем в нее лейбл и текстбокс. А просто на форме создать можно, глупый вопрос конечно ) А то кроме создания мне будет необходимо расположить контрол в любом месте, указав координаты Left,Top
...
Рейтинг: 0 / 0
28.08.2006, 21:21
    #33948110
ЧеГевара
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание control - ов!!!
Seven+А просто на форме создать можно, глупый вопрос конечно ) А то кроме создания мне будет необходимо расположить контрол в любом месте, указав координаты Left,Top
ты можешь например контролы создавать динамически в webusercontrol'е - а его соответственно располагать где угодно на странице. абсолют позишн не есть гуд.
т.е. например - заранее не известно, что будет на странице слева - информация об этом есть в xml файле, тогда слева на странице - юзерконтрол.
...
Рейтинг: 0 / 0
30.08.2006, 13:30
    #33952245
Seven+
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание control - ов!!!
ЧеГевара
ты можешь например контролы создавать динамически в webusercontrol'е - а его соответственно располагать где угодно на странице. абсолют позишн не есть гуд.
т.е. например - заранее не известно, что будет на странице слева - информация об этом есть в xml файле, тогда слева на странице - юзерконтрол.Мнда, я тебе не говорил что я чайник пока в ASP ) На счет ЮзерКонтролов, у тебя есть пример или хорошая ссылка на их создание (TextBox,CheckBox и e.t.), в книгах не все понятно бывает. Еще, можно создать класс, где будут перечислены все создоваемые динамически контролы - если сталкивался или есть инфа подкинь че есть. Буду примного благодарен!
...
Рейтинг: 0 / 0
04.10.2006, 15:44
    #34032214
UDove
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание control - ов!!!
А как создать кнопку динамически???
...
Рейтинг: 0 / 0
04.10.2006, 16:32
    #34032441
gda
gda
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание control - ов!!!
Situatia analogicenaia. Esti organizatii dlia katorih opredelini controli, ih i hraniu v bd, vot tablita:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
 1 	 1 	Numarul de telefon:	PhoneNumber	 8 	Y	 70 	TextBox p/n introducerea numarului de telefon, p/n MoldTelecom	 1 	Number
 2 	 2 	Suma:	Amount	 0 	Y	 70 	TextBox p/n introducerea sumei, p/n MoldTelecom	 2 	Amount
 3 	 6 	Contul variabil:	AccountVar	 10 	Y	 84 	TextBox p/n introducerea contului, p/n RedCentru	 1 	Number
 4 	 7 	Nume/Prenume:	FullName	 100 	N	 84 	TextBox p/n introducerea numelui, p/n RedCentru	 2 	String
 5 	 8 	Suma:	Amount	 0 	Y	 84 	TextBox p/n introducerea sumei, p/n RedCentru	 3 	Amount
 6 	 9 	Contul variabil:	AccountVar	 10 	Y	 83 	TextBox p/n introducerea contului, p/n RedChisinau	 1 	Number
 7 	 10 	Nume/Prenume:	FullName	 100 	N	 83 	TextBox p/n introducerea numelui, p/n RedChisinau	 2 	String
 8 	 11 	Suma:	Amount	 0 	Y	 83 	TextBox p/n introducerea sumei, p/n RedChisinau	 3 	Amount
 9 	 3 	Contul variabil:	AccountVar	 10 	Y	 79 	TextBox p/n introducerea contului, p/n RedSud	 1 	Number
 10 	 4 	Nume/Prenume:	FullName	 100 	N	 79 	TextBox p/n introducerea numelui, p/n RedSud	 2 	String
 11 	 5 	Suma:	Amount	 0 	Y	 79 	TextBox p/n introducerea sumei, p/n RedSud	 3 	Amount


po org_id i citaiu nastroiki iz bazi i risuiu controli na web:


Код: 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.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
        vMain.Controls.Clear();
        DataSet ds = new DataSet();        
        
        using (DbAccess db = new DbAccess())
        {
            try
            {
                db.Connect();
                db.FillDataSet(ds, "select lblname, tboxname, tboxmaxlength, tboxisrequired, oc.org_id, description, rowno, tboxtype, o.org_name as org_name from sc_tb_org_controls oc, sc_tb_organisations o where oc.org_id = o.org_id and o.org_name='" + orgID + "'", "sc_tb_org_controls");
                db.Disconnect();
            }
            catch (Exception ex)
            {
                MyClass.Error(lblError, ex.Message);
            }
            finally
            {
                try
                {
                    db.Disconnect();
                }
                catch
                {
                }
            }
        } 
        
        Table tb = new Table();        
        TableRow tr;
        TableCell td;

        ArrayList arrList = new ArrayList();

        for (int i =  1 ; i <= ds.Tables[ 0 ].Rows.Count; i++)
        {
            tr = new TableRow();
            tb.Rows.Add(tr);

            OrganistaionControl oc = new OrganistaionControl(ds, i);
            arrList.Add(oc);
            organisationName = oc.organisationName;

            for (int j =  1 ; j <=  3 ; j++)
            {
                td = new TableCell();
                tr.Cells.Add(td);

                if (j ==  1 )
                    td.Controls.Add(oc.lbl);
                else if (j ==  2 )
                    td.Controls.Add(oc.tbox);
                else
                {
                    if (oc.rfv != null) td.Controls.Add(oc.rfv);
                    if (oc.rev != null) td.Controls.Add(oc.rev);
                }
            }
        }

        tr = new TableRow();
        tb.Rows.Add(tr);

        td = new TableCell();
        tr.Cells.Add(td);

        td = new TableCell();
        tr.Cells.Add(td);

        td = new TableCell();
        tr.Cells.Add(td);

        Button btn = new Button();
        btn.ID = "btnPay";
        btn.Text = "Achita";
        btn.CssClass = "formbuttons";        


        btn.Click += new EventHandler(btn_Click);
        td.Controls.Add(btn);        

        Label lblOrganisation = new Label();

        lblOrganisation.Text = organisationName;
        lblOrganisation.CssClass = "exampleTitle";

        vMain.Controls.Add(lblOrganisation);


        vMain.Controls.Add(new LiteralControl("<div class=\"example\">"));
        vMain.Controls.Add(tb);

        ValidationSummary vs = new ValidationSummary();

        vMain.Controls.Add(vs);
        vMain.Controls.Add(new LiteralControl("</div>"));

        Session[SESSION_ORG_CONTROL_VALUES] = arrList;


neznaiu na scoliko corecto, na rabotate:) Ia v ASP novicioc.


class OrganistaionControl:

Код: 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.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
public class OrganistaionControl
{
    public Label lbl;
    public TextBox tbox;
    public RequiredFieldValidator rfv;
    public RegularExpressionValidator rev;
    public string organisationName = string.Empty;

    //
    string name = "PhoneNumber";
    string lblText = "Numarul de telefon:";
    int tboxmaxlength =  8 ;
    bool isrequired = true;
    string tboxtype = "String"; // String; Number; Date; Amount
    //

    public OrganistaionControl(DataSet ds, int dsRowNo)
    {
        //
        // TODO: Add constructor logic here
        //

        InitHelpVar(ds, dsRowNo);

        InitializeComponent();
    }

    private void InitializeComponent()
    {
        // Initializam Label
        lbl = new Label();
        lbl.ID = "lbl" + name;
        lbl.Text = lblText;
        lbl.EnableViewState = false;

        // Initializam TextBox
        tbox = new TextBox();
        tbox.ID = "tbox" + name;
        tbox.MaxLength = tboxmaxlength;
        tbox.CssClass = "inputbox";
        tbox.Text = "";

        // Initializam RequiredFieldValidator
        if (isrequired == true)
        {
            rfv = new RequiredFieldValidator();
            rfv.ID = "rvf" + name;
            rfv.Text = "*";
            rfv.ErrorMessage = lbl.Text + " is required.";
            rfv.ControlToValidate = tbox.ID;
        }

        // Initializam RegularExpressionValidator
        if (tboxtype == "Number")
        {
            rev = new RegularExpressionValidator();
            rev.ID = "rev" + name;
            rev.Text = "*";
            rev.ErrorMessage = "Input only " + tboxmaxlength + " digits.";
            rev.ControlToValidate = tbox.ID;
            rev.ValidationExpression = @"\d{1," + tboxmaxlength + "}";
        }
        else if (tboxtype == "Amount")
        {
            rev = new RegularExpressionValidator();
            rev.ID = "rev" + name;
            rev.Text = "*";
            rev.ErrorMessage = "Invalid Amount.";
            rev.ControlToValidate = tbox.ID;
            rev.ValidationExpression = @"^\d+(\.\d\d)|\d+(\,\d\d)?$";
        }
    }

    private void InitHelpVar(DataSet ds, int dsRowNo)
    {
        foreach (DataTable table in ds.Tables)
        {
            foreach (DataRow row in table.Rows)
            {
                if (Convert.ToInt32(row["ROWNO"].ToString()) == dsRowNo)
                {
                    name = row["TBOXNAME"].ToString();
                    lblText = row["LBLNAME"].ToString();
                    tboxmaxlength = Convert.ToInt32(row["TBOXMAXLENGTH"].ToString());

                    if (row["TBOXISREQUIRED"].ToString() == "Y")
                        isrequired = true;
                    else
                        isrequired = false;

                    tboxtype = row["TBOXTYPE"].ToString();

                    organisationName = row["ORG_NAME"].ToString();
                }
            }
        }
    }
...
Рейтинг: 0 / 0
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Создание control - ов!!! / 13 сообщений из 13, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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