Я пытаюсь понять UpdatePanels и передовой опыт их использования.Понимание UpdatePanels
Я использую .Net4.0 с VB.Net.
Идея состоит в том, чтобы создать приложение для беседы для веб-сайта клиентов, и поэтому у меня есть контроль под названием Convo.ascx. Код добавлен ниже.
<asp:UpdatePanel runat="server">
<ContentTemplate>
<h2>Conversation</h2>
<p><asp:Literal ID="lit1" runat="server" /></p>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:Button ID="Button1" runat="server" Text="Button" />
</ContentTemplate>
</asp:UpdatePanel>
Convo.ascx.vb
Partial Class Convo
Inherits System.Web.UI.UserControl
Protected Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
lit1.Text = lit1.Text & "<p>" & TextBox1.Text & "</p>"
End Sub
End Class
На странице загрузки (Default.aspx) У меня есть:
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %>
<%@ Reference Control="~/Convo.ascx" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<asp:scriptmanager ID="Scriptmanager1" runat="server"></asp:scriptmanager>
<div>
<asp:UpdatePanel runat="server">
<ContentTemplate>
<asp:Button ID="Button1" runat="server" Text="Add Conversation" />
<asp:PlaceHolder ID="phConversation" runat="server">
</asp:PlaceHolder>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</form>
</body>
</html>
С Codebehind Default.aspx.vb в
Partial Class _Default
Inherits System.Web.UI.Page
Protected Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
AddConvo()
End Sub
Private Sub AddConvo()
Dim getPh As New PlaceHolder
getPh = CType(Me.FindControl("phConversation"), PlaceHolder)
Dim ucConvo As New Convo
ucConvo = CType(LoadControl("~/Convo.ascx"), Convo)
getPh.Controls.Add(ucConvo)
End Sub
Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
AddConvo()
End Sub
End Class
Таким образом, Convo, я добавляю OnLoad, остается на странице после того, как добавлено, добавлено, добавлено какое-либо добавление после того, как загрузка исчезла после нажатия кнопки на Convo.
Так что мой вопрос в том, как я могу добавить и оставить? В конце концов они будут добавлены в базу данных, но прямо сейчас я пытаюсь понять UpdatePanels, поскольку они станут основой для этого приложения.
Есть ли очень хорошее объяснение многоцелевых UpdatePanels в любом месте?
Заранее спасибо
PS, им в hobbiest так только VB ответы, пожалуйста
Спасибо Брайан, поэтому вопрос, как я могу гарантировать, что эти элементы управления возвращаются после каждой обратной передачи, когда количество разговоров неизвестно? –
Это сложная часть, хотя если у вас есть счетчик, который вы храните в viewstate '(LoadControl (" .. "); ViewState [" Counter "] + = 1;', вы можете ссылаться на это. восстановите свой viewstate для каждого элемента управления, пока вы добавляете их во время фазы инициализации. –
Делает это сложным для меня, но имеет обходное решение, используя только одну UpdatePanel –