2009-09-23 3 views
1

J'ai un contrôle utilisateur très simple qui est destiné à afficher certains textes si une propriété est définie sur true et que cela fonctionne correctement pour les actualisations de page complète. Je voudrais savoir comment je peux mettre à jour juste ce contrôle de l'utilisateur à travers AJAX, où devrais-je aller à partir d'ici. Je poste ma source actuelle mais je ne suis attaché à aucun d'entre eux. Mes seules préoccupations sont qu'une actualisation de page complète ne se produit pas et que je serais en mesure d'ajouter de la complexité au contrôle.Comment utiliser AJAX pour mettre à jour un contrôle utilisateur simple?

contrôle utilisateur

:

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="basic.ascx.cs" Inherits="ExperimentalPortal.basic" %>  
<p>  
<% 
    Response.Write(Text); 
    if (Show) 
    { 
     Response.Write(HiddenText); 
    } 
    %>  
</p> 
code de contrôle utilisateur

derrière:

public partial class basic : System.Web.UI.UserControl 
{ 
    public String Text { get; set; } 
    public String HiddenText { get; set; } 
    public bool Show { get; set; } 

    protected void Page_Load(object sender, EventArgs e) 
    { 

    } 
} 

page:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Basic.aspx.cs" Inherits="ExperimentalPortal.Basic" %> 
<%@ Register TagPrefix="customControl" TagName="NavigationBar" 
    Src="basic.ascx" %> 

<!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"> 
    <asp:ScriptManager ID="ScriptManager1" runat="server" EnablePartialRendering="true"> 
     </asp:ScriptManager> 
     <div> 
    <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional"> 
    <ContentTemplate> 
     <customControl:NavigationBar ID="navBar1" Text="Hello" HiddenText="Hiding" runat="server"/> 
    </ContentTemplate>     
    </asp:UpdatePanel>  
    <asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" /> 
    </div> 
    <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label> 
    </form> 
</body> 
</html> 

code de la page derrière:

+0

Cherchez-vous une réponse qui implique l'utilisation du UpdatePanel ou essayez-vous de le faire sans? –

+0

Vraiment, je veux juste utiliser AJAX pour mettre à jour le contrôle, mais je peux. – ProgrammingPope

Répondre

0

j'ai fini par mettre le test dans un contrôle d'étiquette. Je ne sais pas exactement ce qu'il y a dans un contrôle d'étiquette, mais le contrôle d'étiquette utilise AJAX pour mettre à jour.

public void Update() 
     { 
      UpdateLabel(); 
      UpdatePanel1.Update(); 
     } 

private void UpdateLabel() 
     { 
      String text = ""; 
      // Portal Heading 
      text += "<div style=" + HeadingStyle + ">"; 
      text += "Portal"; 
      text += "</div>"; 
      Label1.Text = text; 
     } 
0

Accédez aux propriétés OnPreRender.

contrôle utilisateur code-behind:

protected override void OnPreRender(EventArgs e) 
{ 
    base.OnPreRender(e); 

    Response.Write(Text); 
    if (Show) 
    { 
     Response.Write(HiddenText); 
    } 

}  
Questions connexes