2010-03-19 8 views
0

J'ai une page aspx avec deux boutons, l'un des boutons a un attribut OnClick pour une fonction qui doit être exécutée lorsque l'on clique dessus. Quand on clique sur l'autre bouton, il y a une instruction if qui vérifie si la page est une publication, si c'est le cas, j'exécute certaines instructions qui doivent être exécutées quand on clique sur ce bouton. Ce bouton de publication fonctionne correctement. Cependant, l'autre bouton, lorsqu'il est cliqué sur la fonction qu'il est supposé appeler, ne s'exécute jamais, et les instructions à l'intérieur if (Page.IsPostBack) sont exécutées à la place. Que puis-je faire pour résoudre ce problème? Y at-il un moyen de rendre le bouton qui appelle une fonction pas faire un retour?Le bouton ne clique pas sur la fonction même lorsque l'attribut bouton OnClick est défini sur cette fonction

+2

Pouvez-vous poster le code. Tant dans la page aspx et le code derrière. – ChrisF

+0

Voulez-vous des publications asynchrones? (AJAX) –

+0

Je ne veux pas qu'une publication soit effectuée à partir d'un clic de bouton, je veux juste que la fonction spécifiée dans l'attribut OnClick du bouton soit exécutée. – adhanlon

Répondre

1

[snip - ne fait pas partie de la question]

EDIT: Voici un exemple d'appeler la fonction OnClick d'un bouton d'une manière de asych en utilisant un UpdatePanel:

.aspx

<form id="form1" runat="server"> 
    <asp:ScriptManager runat="server"></asp:ScriptManager> 
    <asp:UpdatePanel ID="upTest" runat="server"> 
     <ContentTemplate> 
      <asp:Button ID="btnTest" Text="Test" OnClick="Delete_Click" runat="server" /> 
     </ContentTemplate> 
    </asp:UpdatePanel> 
</form> 

.aspx.cs

protected void Delete_Click(object sender, EventArgs e) 
{ 
    // Whatever you want to do. 
} 

EDIT 2: Voici une réponse que j'ai récemment donné que figures out what control has caused a postback.

+0

L'attribut OnClick est défini sur "Delete_Click" et j'ai une méthode protégée void Delete_Click() dans le fichier aspx.cs fichier – adhanlon

+0

Le 'OnClick' est une fonction côté serveur qui devrait être appelée dans le cadre d'une publication. Si vous ne voulez pas une publication complète alors vous devriez regarder un 'UpdatePanel' pour un appel asynch. – CAbbott

+0

J'ai compris mon problème en quelque sorte. La fonction Page_Load est appelée avant ma fonction Delete_Click. Et dans la fonction Page_Load, je dois avoir if (Page.IsPostback) {// faire des choses, puis rediriger la page}, c'est pourquoi Delete_Click n'est pas appelé. Puis-je utiliser l'expéditeur de l'objet pour déterminer quel bouton a causé le retour? – adhanlon

Questions connexes