Bonjour,

J'ai réussi à faire un assembly de UserControls, avec par exemple dans un fichier CS contenu dans mon projet de librairie:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
 
namespace ClassLibrary
{
    [DefaultProperty("Text")]
    [ToolboxData("<{0}:DateTextBox runat=server></{0}:DateTextBox>")]
    public class DateTextBox : TextBox
    {
        public string TextBefore { get; set; }
 
        [Bindable(true)]
        [Category("Appearance")]
        [DefaultValue("")]
        [Localizable(true)]
        public override string Text
        {
            get
            {
                String s = (String)ViewState["Text"];
                return ((s == null) ? String.Empty : s);
            }
 
            set
            {
                ViewState["Text"] = value;
            }
        }
 
        protected override void RenderContents(HtmlTextWriter output)
        {
            output.Write(Text);
        }
 
        protected override void Render(System.Web.UI.HtmlTextWriter writer)
        {
            if (TextBefore != null && !string.Empty.Equals(TextBefore))
            {
                writer.Write("<B>" + TextBefore + " :</B> ");
            }
            base.Render(writer);
        }
 
        protected override void OnPreRender(EventArgs e)
        {
            this.Width = Unit.Pixel(70);
            this.MaxLength = 10;
            this.ToolTip = "dd/MM/yyyy";
            this.Text = DateTime.Today.ToShortDateString();
            base.OnPreRender(e);
        }
    }
}
et à l'exploiter dans une page aspx de mon site:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
<%@ Page Language="C#" MasterPageFile="~/Pages/Site1.master" AutoEventWireup="true" CodeBehind="~/Pages/Default.aspx.cs" Inherits="WebApplication.Pages._Default" %>
 
<%@ MasterType VirtualPath="~/Pages/Site1.master" %>
<%@ Register Assembly="ClassLibrary" Namespace="ClassLibrary" TagPrefix="uc" %>
 
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" runat="Server">
    <div>
        <uc:DateTextBox id="DateFieldUC" TextBefore="Ma date" runat="server" />
    </div>
</asp:Content>
J'aimerai pouvoir faire la même chose avec des CustomControls (ascx); je ne peux pas en créer directement dans le projet de librairie.
Quelqu'un peut-il m'aider à trouver une astuce pour créer des dll d'ascx ?

Merci pour votre aide et vos conseils !