[ASP.NET] Web user control, collection properties

Pagina: 1
Acties:

  • hemaworst
  • Registratie: Juli 2004
  • Laatst online: 12-03-2022
Ik ben bezig met het maken van een Web User control in MS Visual Web developer 2005 Express.
Ik wil graag de volgende code in mijn .aspx bestand kunnen toevoegen:
code: ff
1
2
3
4
5
<uc1:clsFK ID="ClsFK1" runat="server">
   <Keys>
      <uc1:Key Something="dd" />      
   </Keys>        
</uc1:clsFK>


Ik volg het stappenplan van :http://aspadvice.com/blogs/jlovell/archive/2004/02/29/1934.aspx

Ik krijg het alleen niet aan de praat. Ik krijg steeds de foutmelding :"Object reference not set to an instance of an object". Wanneer ik default.aspx open in design view, zie ik de usercontrol met de foutmelding "Error 2 ClsFK1:Type 'System.Web.UI.UserControl' does not have a public property named 'Keys'. S:\Dev\Try composite control\Default.aspx S:\Dev\Try composite control\
". Ik heb al heel veel nieuwsgroepen/google/internetpagina's bezocht, maar ik kom er steeds niet uit. Kan dit misschien niet omdat het een WebUserControl is? Bij voorbaat dank!!


Ik heb het volgende gedaan:
1.Maken van een usercontrol door "File->New File->Web User control" (code in seperate file), genaamd clsFK.
De code van clsFK.ascx.cs:
code:
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
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.ComponentModel;

[DefaultProperty("Something")]
public class Key
{
    private string pSomething = "Something";

    public string Something
    {
        get { return pSomething; }
        set { pSomething = value; }
    }
}

public class KeyCollection : CollectionBase
{
    public Key this[int index]
    {
        get { return ((Key)(List[index])); }
        set { List[index] = value; }
    }

    public int Add(Key item)
    {
        return List.Add(item);
    }

    public void Insert(int index, Key item)
    {
        List.Insert(index, item);
    }
}

[ParseChildren(true)]
[PersistChildren(false)]
[ToolboxData("<{0}:clsFK runat=server></{0}:clsFK>")]
public partial class clsFK : System.Web.UI.UserControl
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }

    private KeyCollection pKeys = new KeyCollection();

    [NotifyParentProperty(true)]
    [PersistenceMode(PersistenceMode.InnerProperty)]
    [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
     public KeyCollection Keys
    {
        get { return pKeys; }
        set { pKeys = value; }
    }

}


Hier de code van default.aspx:
code:
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
<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>

<%@ Register Src="clsFK.ascx" TagName="clsFK" TagPrefix="uc1" %>



<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Untitled Page</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        &nbsp;
        
       
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        <uc1:clsFK ID="ClsFK1" runat="server">
            <Keys>
                    <uc1:Key Something="dd" />      
            </Keys>        
        </uc1:clsFK>
       
    </div>
    </form>
</body>
</html>

Hans Dorrestijn: "Want, de worstjes van de Hema zijn niet te hard of slap...De Hemaworst, hoera hoera, zit barstens vol met sap.Baby's die nu juichen aan de moederborst...Zouden harder zuigen aan de Hemaworst"