Page_Load pas de tir dans le UserControl
J'ai créé une classe en c# à l'intérieur d'une bibliothèque de classe et j'ai ajouté ce contrôle à la valeur par défaut.aspx, mais mon code ne marche pas, le feu de l'événement page_load. Voici le code:
Que suis-je doign mal?
Le chargement de la page, mais ne pas montrer l'étiquette sur la page. J'ai ajouté le contrôle à la page correctement sans erreur. J'ai événement ajouté le registre de la balise.
balise html: <RandoIntegerControls:RandomIntegerControl ID="RandomIntegerControl1" runat="server"></RandoIntegerControls:RandomIntegerControl>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web.UI.WebControls;
namespace CSIMedia.WebControls
{
public class RandomIntegerControl : PlaceHolder
{
private Label _Label;
public RandomIntegerControl()
{
}
private void Page_Load(Object sender, EventArgs e)
{
this._Label = new Label();
this.Controls.Add(this._Label);
this._Label.Text = "Enter random values:";
}
}
}
Par défaut.page aspx:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<%@ Register TagPrefix="RandoIntegerControls" Assembly="CSIMedia.WebControls" Namespace="CSIMedia.WebControls"%>
<!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 id="Head1" runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<RandoIntegerControls:RandomIntegerControl ID="RandomIntegerControl1" runat="server"></RandoIntegerControls:RandomIntegerControl>
</div>
</form>
</body>
</html>
Avez-vous d'inclure le .fichier ascx de votre contrôle personnalisé dans le fichier aspx qui l'utilise?
non je l'ai supprimé. Je n'ai pas créé pas de fichiers ascx. j'ai créé cette classe comme une classe.cs fichier et juste ajouté cette classe de contrôle à la page. mais j'ai ajouté de la valeur par défaut.page aspx en arrière et je n'ai toujours aucune chance avec elle.
Pouvez-vous montrer le code où vous avez ajouté le contrôle de la page?
j'ai copié et paseted le code et il ne me laissera pas ajouter le code html, ou puis-je le faire d'une façon, juste ajouté un peu de html, je ne sais pas pourquoi?
Essayez d'utiliser l'Exemple de Code icône { } Pour ajouter du code.
non je l'ai supprimé. Je n'ai pas créé pas de fichiers ascx. j'ai créé cette classe comme une classe.cs fichier et juste ajouté cette classe de contrôle à la page. mais j'ai ajouté de la valeur par défaut.page aspx en arrière et je n'ai toujours aucune chance avec elle.
Pouvez-vous montrer le code où vous avez ajouté le contrôle de la page?
j'ai copié et paseted le code et il ne me laissera pas ajouter le code html, ou puis-je le faire d'une façon, juste ajouté un peu de html, je ne sais pas pourquoi?
Essayez d'utiliser l'Exemple de Code icône { } Pour ajouter du code.
OriginalL'auteur redoc01 | 2011-02-22
Vous devez vous connecter pour publier un commentaire.
Vous héritant de l'espace Réservé, qui est un Contrôle Web et ne le sera pas pour l'événement Page_Load. Seuls Les Contrôles De L'Utilisateur (.ascx) sera capable de gérer cet événement implicitement.
Par les regards du code que vous avez posté, vous feriez probablement mieux à l'aide d'un UserControl, ou si vous avez besoin de re-utilisable dans de multiples projets, de créer un Contrôle Web à partir de zéro.
Non, pour créer un contrôle web à partir de zéro, vous devez hériter de Contrôle du Web lui-même et de remplacer les méthodes associées pour créer le contrôle. Héritant de l'espace Réservé signifie que la fonctionnalité a déjà eu lieu.
Qu'est ce qu'il vous a été demandé de faire exactement?
il suffit juste de créer une application qui permet à l'utilisateur d'entrer des nombres aléatoires et de les afficher dans des asc ou desc de l'ordre, ils ont fourni de la css et de l'html, j'ai juste besoin d'obtenir la fonctionnalité woroking.
merci, et merci à tout le monde. je suis oiverriding les méthodes et sa fonctionne très bien maintenant, en gros, j'ai utilisé "protected override void OnInit(EventArgs e)" pour déclencher l'événement. Est-ce ok @Clint?
OriginalL'auteur Clint
Essayez ceci:
Dans les pages (et les Contrôles de l'Utilisateur), la méthode Page_Load est normalement attaché automatiquement grâce à cet attribut:
<%@ Page ... AutoEventWireup="true" ... %>
Si vous n'avez pas un aspx/fichier ascx, il ne va pas se faire automatiquement, mais vous pouvez toujours brancher manuellement avec le code ci-dessus.
Désolé, je ne suis pas sûr de comprendre la question. Le code que j'ai écrit est C#, demandez-vous une version de visual basic?
Génial, a fonctionné parfaitement pour moi merci Xavier 🙂
OriginalL'auteur Xavier Poinas
Il s'avère que vous pouvez remplacer
Page_Load
dans leaspx
fichier de marquage. Ce fichier hérite du fichier de base.Exemple pour remplacer:
Cette fonction remplace le code-behind de la version.
OriginalL'auteur Andomar