Avatar billede aceymer Nybegynder
05. marts 2003 - 10:29 Der er 12 kommentarer og
1 løsning

Problem med Webusercontrol

jeg har lavet en fin WebuserControl, nu vil jeg gerne bruge den på min side, jeg sætter den ind via drag and drop, men hvordan bruger jeg nu div metoder fra den i min kode???
hvem kender svaret???
på forhånd tak...
Avatar billede burningice Nybegynder
05. marts 2003 - 11:00 #1
det kommer da helt an på hvordan du har lavet din usercontrol... men i de fleste tilfælde kan følgende bruges:

DinUserControl c = new DinUserControl();
c.DinMetode();
Avatar billede aceymer Nybegynder
05. marts 2003 - 11:04 #2
dette har jeg prøvet men klassen er abstrakt....
Avatar billede burningice Nybegynder
05. marts 2003 - 11:18 #3
well.. så lad vær med at lave klasse abstract ?! abstract bruger man hvis man laver en klasse som kun skal bruges til at nedarve fra.
Avatar billede aceymer Nybegynder
05. marts 2003 - 11:40 #4
har du tilfældigtvis et eksempel på brug af usercontrols, cyberfessor
Avatar billede aceymer Nybegynder
05. marts 2003 - 12:26 #5
cyberfessor du har allerede hjulpet mig meget, hvordan kan jeg give dig lidt point
Avatar billede burningice Nybegynder
05. marts 2003 - 12:38 #6
jo, det har jeg da... det er en lille tagwall jeg startede på for lang tid siden, dengang jeg startede på asp.net... er dog aldrig blevet færdig med den

using System;
using System.Data;
using System.Data.OleDb;
using System.Text;
using System.Text.RegularExpressions;
using System.Web.UI.WebControls;

namespace BurningIce.Tagwall
{
    /// <summary>
    /// Summary description for tagwall.
    /// </summary>
    public abstract class main : System.Web.UI.UserControl
    {   
        protected System.Web.UI.WebControls.TextBox txtName;
        protected System.Web.UI.WebControls.TextBox txtEmail;
        protected System.Web.UI.WebControls.TextBox txtBesked;
        protected System.Web.UI.WebControls.Button btnSubmit;
        protected System.Web.UI.WebControls.Label lblInfo;
        protected System.Web.UI.WebControls.DataGrid dgTagwall;

        private bool _ItemStyleBold = false;
        public bool ItemStyleBold
        {
            set {_ItemStyleBold = value; }
        }

        private int _PageSize = 1;
        public int PageSize
        {
            set {_PageSize = value; }
        }

        private void Page_Load(object sender, System.EventArgs e)
        {   
            int intAntalPoster = CreateDataSource().Count;
           
            if (!Page.IsPostBack)
            {
                dgTagwall.ItemStyle.Font.Bold = _ItemStyleBold;
               
                dgTagwall.PageSize = _PageSize;
                if (_PageSize < intAntalPoster)
                {
                    dgTagwall.AllowPaging = true;
                }
                dgTagwall.PagerStyle.Mode = PagerMode.NumericPages;

                BindGrid();
            }
        }

        public void btnSubmit_Click(object sender, System.EventArgs e)
        {
            string strName = ValidateString(txtName.Text.Trim());
            string strEmail = ValidateString(txtEmail.Text.Trim());
            string strBesked = ValidateString(txtBesked.Text.Trim());

            lblInfo.Text = strName + " "+ strEmail +" "+ strBesked;
        }

        public void dgTagwall_Paging(Object sender, DataGridPageChangedEventArgs e)
        {
            dgTagwall.CurrentPageIndex = e.NewPageIndex;
            BindGrid();

        }

        #region DataSource
        private DataView CreateDataSource()
        {
            DataTable dt = new DataTable();
            DataRow dr;       
               
            dt.Columns.Add(new DataColumn("name", typeof(string)));
            dt.Columns.Add(new DataColumn("besked", typeof(string)));

            dr = dt.NewRow();
            dr[0] = "Pauli";
            dr[1] = "asædkfhsækrdfgalsdhfæalewrhkæasdlfhæasjh";
            dt.Rows.Add(dr);
       
            DataView dv = new DataView(dt);
            return dv;
        }
       

        private void BindGrid()
        {   
            dgTagwall.DataSource = CreateDataSource();
            dgTagwall.DataBind();
        }
        #endregion

        private string ValidateString(string strInput)
        {   
            StringBuilder str = new StringBuilder(strInput);
            strInput = str.Replace("'","''").ToString();

            Regex reg = new Regex("<[^>]*>");
            return reg.Replace(strInput,"");
        }
    }
}
Avatar billede burningice Nybegynder
05. marts 2003 - 12:39 #7
en aspx-side der bruger den kunne se sådan her ud:

<%@ Page Language="C#" Debug="true" %>
<%@ Register TagPrefix="BurningIce" TagName="Tagwall" Src="tagwall.ascx" %>
<html>
<head>
<title>Tagwall</title>
</head>
<body>
<form runat="server">
Weeh... en tagwall lavet som usercontrol :)


<BurningIce:Tagwall runat="server" ItemStyleBold="true" PageSize="8" />
</form>
</body>
</html>
Avatar billede burningice Nybegynder
05. marts 2003 - 12:39 #8
og til sidst har vi ascx-filen:

<%@ Control Language="c#" Inherits="BurningIce.Tagwall.main" %>
<table>
    <tr>
        <td>
            <table align="left" width="300px">
                <tr>
                    <td>Navn: </td>
                    <td><asp:textbox ID="txtName" runat="server" /></td>
                </tr>
                <tr>
                    <td>Email: </td>
                    <td><asp:textbox ID="txtEmail" runat="server" /></td>
                </tr>
                <tr>
                    <td>Besked: </td>
                    <td><asp:textbox ID="txtBesked" TextMode="MultiLine" Rows="5" runat="server" /><td>
                <tr>
                    <td colspan="2" align="left"><asp:button ID="btnSubmit" OnClick="btnSubmit_Click" Text="Sæt ind" runat="server" /></td>
                </tr>
                <tr>
                <td height="10"></td>
                </tr>
            </table>
        </td>
    </tr>
    <tr>
        <td>
            <asp:datagrid id="dgTagwall"
            AutoGenerateColumns="false"
            ShowHeader="false"
            ShowFooter="false"
            GridLines="Horizontal"
            BorderWidth="1px"
            BorderColor="#000000"
            OnPageIndexChanged="dgTagwall_Paging"
            runat="server">

                <ItemStyle/>

                <Columns>
               
                    <asp:BoundColumn DataField="name" ItemStyle-Width="100" />
                    <asp:BoundColumn DataField="besked" ItemStyle-Width="300" />
               
                </Columns>

            </asp:datagrid>
        </td>
    </tr>
</table>


<asp:label id="lblInfo" runat="server" />
Avatar billede aceymer Nybegynder
05. marts 2003 - 12:40 #9
har du også lidt kode fra klassen du bruger controllen i???
Avatar billede aceymer Nybegynder
05. marts 2003 - 12:42 #10
altså i c#
Avatar billede burningice Nybegynder
05. marts 2003 - 13:00 #11
klassen er den jeg har skrevet her

Kommentar: cyberfessor
05/03-2003 12:38:16

og som du kan se her

Kommentar: cyberfessor
05/03-2003 12:39:34

så er det den klasse jeg arver fra.
Avatar billede aceymer Nybegynder
05. marts 2003 - 13:51 #12
jeg fandt min fejl, det var mig der havde skrevet forkert...
Tusind tak for hjælpen... vil du have point ellers lukker jeg denne..
Avatar billede burningice Nybegynder
05. marts 2003 - 21:15 #13
hvis jeg hjalp dig til løsningen ville et accepteret svar da ikke være så ringe :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester