簡體   English   中英

在面板中渲染一個asp.net用戶控件

[英]Rendering an asp.net user control in a Panel

我創建了這個asp.net用戶控件(僅是此堆棧溢出后的示例)

HTML:

<%@ Control Language="vb" AutoEventWireup="false" CodeBehind="ucBTN.ascx.vb" Inherits="EBC_SAK_MVV_BTN.web.ucBTN" %>

<div>
    <asp:Button ID="btnLeft" runat="server" Width="200" Height="100" CssClass="btn btn-sq-lg btn-primary" Text="Button-Left" />
    <asp:Button ID="btnMiddle" runat="server" Width="200" Height="100" CssClass="btn btn-sq-lg btn-primary" Text="Button-Middle" />
    <asp:Button ID="btnRight" runat="server" Width="200" Height="100" CssClass="btn btn-sq-lg btn-primary" Text="Button-Right" />
</div>

后面的代碼:

Public Class ucBTN
    Inherits System.Web.UI.UserControl
    Public Property TextLeft As String
    Public Property TextMiddle As String
    Public Property TextRight As String
End Class

當我在頁面中使用此用戶控件時,它會起作用(test.aspx):

<%@ Page Title="" Language="vb" AutoEventWireup="false" MasterPageFile="~/EBC.Master" CodeBehind="TEST.aspx.vb" Inherits="EBC_SAK_MVV_BTN.web.TEST" %>

<%@ Register Src="~/ucBTN.ascx" TagPrefix="uc1" TagName="ucBTN" %>
<uc1:ucBTN runat="server" ID="myBTN" />

但是,當我在頁面上添加面板並將用戶控件添加到該面板時,它保持空白:

HTML:

<asp:Panel ID="Panel1" runat="server"></asp:Panel>

后面的代碼:

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim BTN As New ucBTN
BTN.TextLeft = "LEFT"
BTN.TextMiddle = "MIDDLE"
BTN.TextRight = "RIGHT"
Panel1.Controls.Add(BTN)
End Sub

我想在運行時創建數十個這些控件-如何將它們添加到面板中?

使用PlaceHolder代替面板

在用戶控件中使用:

<asp:PlaceHolder ID="PlaceHolder1" runat="server">

在使用后的代碼中:

PlaceHolder1.Controls.Add(BTN)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM