自强不息,止于至善

身无半文,心忧天下;手释万卷,神交古人
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

局部内容添加

Posted on 2007-10-27 21:14  L.Zhang  阅读(137)  评论(0)    收藏  举报

//前台代码

    <div id="commentContainer">
        
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
            
<ContentTemplate>
                
<asp:Repeater ID="Repeater1" runat="server">
                    
<ItemTemplate>
                        
<%# (Container.DataItem as Comment).Content %><br />
                        
<i><%# (Container.DataItem as Comment).Time %></i>
                        
<hr />
                    
</ItemTemplate>
                
</asp:Repeater>
            
</ContentTemplate>
            
<Triggers>
                
<asp:AsyncPostBackTrigger ControlID="Button1" />
            
</Triggers>
        
</asp:UpdatePanel>
    
</div>
    
    
<br />
    
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox><br />
    
<asp:Button ID="Button1" runat="server" Text="Add Comment" OnClick="Button1_Click" />

    
<script language="javascript" type="text/javascript">
        Sys.WebForms.PageRequestManager.getInstance().add_pageLoaded(
            
function(sender, e)
            {
                
var upId = "<%= this.UpdatePanel1.ClientID %>";
                
var refreshedPanels = e.get_panelsUpdated();
                
                
for (var i = 0; i < refreshedPanels.length; i++)
                {
                    
if (refreshedPanels[i].id == upId)
                    {
                        refreshedPanels[i].id 
= upId + Math.floor(9999 * Math.random());
                        
var div = document.createElement("div");
                        div.id 
= upId;
                        $get(
"commentContainer").appendChild(div);
                        
return;
                    }
                }
            });
    
</script>
//后台代码
    private static List<Comment> Comments;
    
protected void Page_Load(object sender, EventArgs e)
    {
        
if (!this.IsPostBack)
        {
            
// 在第一次打开页面时清空所有Comments。
            
// 古怪的用法,仅在这个示例时这么用。
            Comments = new List<Comment>();
            
this.BindComments();
        }
    }

    
private void BindComments()
    {
        
this.Repeater1.DataSource = Comments;
        
this.Repeater1.DataBind();
    }

    
protected void Button1_Click(object sender, EventArgs e)
    {
        Comment comment 
= new Comment();
        comment.Content 
= this.TextBox1.Text;
        comment.Time 
= DateTime.Now;

        
// Comments.Add(comment);
        this.Repeater1.DataSource = new Comment[] { comment };
        
// this.BindComments();
        this.Repeater1.DataBind();
    }
//实体类
public class Comment
{
    
public string Content;

    
public DateTime Time;
}