2009-09-23 41 views
1

我有一个非常简单的用户控件,它是为了显示某些文本,如果一个属性设置为true,这对整个页面刷新工作正常。我想知道如何通过AJAX更新这个用户控件,我应该从哪里开始。我张贴我目前的来源,但我没有附加到任何它。我唯一担心的是整个页面刷新不会发生,我可以增加控件的复杂性。如何使用AJAX更新简单的用户控件?

用户控制:

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

用户控件的代码背后:

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 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> 

页后面的代码:

+0

你在寻找一个涉及使用UpdatePanel的答案吗?或者你是否试图做到这一点? – 2009-09-23 22:12:50

+0

真的,我只是想用AJAX来更新控件,但是我可以。 – ProgrammingPope 2009-09-23 22:28:48

回答

0

我卷绕把测试成标签控制。我不知道标签控件中的内容是什么,但标签控件使用AJAX进行更新。

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

访问属性OnPreRender。

用户控制代码隐藏:

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

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

}  
相关问题