Bonjour à Tous,
J'essaie d'intégrer un WebUserControl dans un TemplateField de Fields d'un DetailView selon mes codes ci-dessous, j'ai l'erreurJ'ai testé mon WebUserControl et il fonctionne bien sur une simple page de test.... Un apel à Bind doit être assigné à une propriété d'un contrôle dans un modèle.
L'idée c'est d'afficher un TextBox et un Button; en cliquant sur le Button le calendrier doit s'afficher et en cliquant sur une date, cette dernière se copie sur le TextBox et le calendrier se referme.
Avec Ajax il y a un controle qui fait ça très bien. Mais pour le moment j'aimerais tout de même comprendre l'ASP.NET avant de commencer Ajax et/ou MVC.
Question:
1. Comment peut-on intégrer un WebUserControl dans un DetailView?
Merci d'avance de votre aide.
MyPage.aspx:
MyWebUserControl.aspx.cs:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 <asp:SqlDataSource ... <asp:DetailsView ... <Fields> <asp:TemplateField HeaderText="PV AG reçu le : " SortExpression="Date_RecepPv_Ag"> <EditItemTemplate> <uc1:MyWebUserControl ID="MyWebUserControl1" runat="server" Visible="true" Text='<%# Bind("Date_RecepPv_Ag") %>' /> </EditItemTemplate> <ItemTemplate> <uc1:MyWebUserControl ID="MyWebUserControl1" runat="server" Visible="true" Text='<%# Bind("Date_RecepPv_Ag") %>' ReadOnly="true" /> </ItemTemplate> </asp:TemplateField>
MyWebUserControl.aspx:
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 using System; using System.Collections.Generic; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; public partial class MyWebUserControl : System.Web.UI.UserControl { protected void Page_Load(object sender, EventArgs e) { wucPanel1.Height = 22; wucPanel1.Width = 106; wucPanel1.Visible = true; // wucTextBox1.Height = 20; wucTextBox1.Width = 70; wucTextBox1.Visible = true; wucTextBox1.DataBind(); wucButton1.Height =21; wucButton1.Width = 23; wucPanel1.Visible = true; wucCalendar1.Height = 0; wucCalendar1.Width = 0; wucCalendar1.Visible = false; } // Affectation de la date dans TextBox et masquage de Panel et du Calendrier protected void DateSelected(object sender, EventArgs e) { wucTextBox1.Text = wucCalendar1.SelectedDate.ToShortDateString(); wucCalendar1.Visible = false; wucPanel1.Height = 23; wucPanel1.Width = 106; } // Affîchage du Calendrier protected void DisplayCalendar(object sender, EventArgs e) { //wucPanel1.Visible = true; wucCalendar1.Visible = true; wucPanel1.Width = 182; wucPanel1.Height = 174; wucCalendar1.Height = 150; wucCalendar1.Width = 180; } }
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 <%@ Control Language="C#" AutoEventWireup="true" CodeFile="MyWebUserControl.ascx.cs" Inherits="MyWebUserControl" %> <asp:Panel ID="wucPanel1" runat="server" BorderStyle="Solid" BorderWidth="1" CssClass="calendar" > <asp:TextBox ID="wucTextBox1" runat="server" BorderStyle="None" /> <asp:Button ID="wucButton1" runat="server" Text="1 " Font-Bold="True" OnClick="DisplayCalendar" /> <asp:Calendar ID="wucCalendar1" runat="server" BackColor="#FFFFCC" BorderColor="#FFCC66" DayNameFormat="Shortest" Font-Names="Verdana" Font-Size="8pt" ForeColor="#663399" OnSelectionChanged="DateSelected" BorderWidth="1px" ShowGridLines="True" > <SelectedDayStyle BackColor="#CCCCFF" Font-Bold="True" /> <SelectorStyle BackColor="#FFCC66" /> <TodayDayStyle BackColor="#FFCC66" ForeColor="White" /> <OtherMonthDayStyle ForeColor="#CC9966" /> <NextPrevStyle Font-Size="9pt" ForeColor="#FFFFCC" /> <DayHeaderStyle BackColor="#FFCC66" Font-Bold="True" Height="1px" /> <TitleStyle BackColor="#990000" Font-Bold="True" Font-Size="9pt" ForeColor="#FFFFCC" /> </asp:Calendar> </asp:Panel>
Partager