Master.cs文件
ChatUserControl user1 = new ChatUserControl();
ChatUserControl user2 = new ChatUserControl();
ChatUserControl user3 = new ChatUserControl();
divChatUserControlCover.Controls.Add(user1);
divChatUserControlCover.Controls.Add(user2);
divChatUserControlCover.Controls.Add(user3);
private void BindUserControls()
{
ChatUserControl user1 = divChatUserControlCover.FindControl("user1") as ChatUserControl;
}
ChatUserControl.cs
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="ChatUserControl.ascx.cs"
Inherits="MetamorphismApp.ChatUserControl" %>
<asp:Timer ID="timer1" runat="server" OnTick="timer1_Tick" Interval="5000">
</asp:Timer>
<div id="divChatWindow" class="clChatWindow">
<div>
<asp:Label runat="server" Text='<%# Eval("username") %>' class="divHeader" ID="lblChatFriend"></asp:Label>
<asp:Image ID="imgFriend" runat="server" CssClass="classFriendImage" />
<asp:LinkButton ID="lbClose" runat="server" CommandName="Close" CssClass="lbClose"
OnClick="lbClose_Click">Close</asp:LinkButton></div>
<div class="chatText" id="idChatText" runat="server">
<asp:UpdatePanel ID="UpdatePanel" runat="server">
<Triggers>
<asp:AsyncPostBackTrigger ControlID="timer1" EventName="Tick" />
<asp:AsyncPostBackTrigger ControlID="btnSendChat" EventName="Click" />
</Triggers>
<ContentTemplate>
<asp:Repeater runat="server" ID="rpChatMessages">
<ItemTemplate>
<asp:Image ID="imageForFriend" runat="server" CssClass="clFriendsImage" ImageUrl='<%# "HttpImageHandler.jpg?username=" + DataBinder.Eval(Container.DataItem,"fromusername").ToString() %>' />
<asp:Label ID="chatMessage" runat="server" Text='<%# Eval("Message") %>'></asp:Label>
<br>
</ItemTemplate>
</asp:Repeater>
</ContentTemplate>
</asp:UpdatePanel>
</div>
<asp:TextBox ID="txtChatMessage" runat="server" Width="142px" CssClass="clChatMessage" EnableViewState="true"
TextMode="MultiLine"></asp:TextBox>
<asp:LinkButton ID="btnSendChat" runat="server" CommandName="Insert" CommandArgument='<%# Eval("username") %>'
OnClick="btnSendChat_Click">Send</asp:LinkButton>
</div>
Master.cs
private void BindUserControls()
{
ChatUserControl user1 = divChatUserControlCover.FindControl("user1") as ChatUserControl;
}
我在user1控件的BindUserControls中出错;对象引用未设置为对象的实例
答案 0 :(得分:0)
最有可能的是,没有调用实例化并将控件放入div的代码。确保即使在回发时也创建了控件,以便可以触发/处理更多事件。
答案 1 :(得分:0)
应在每个回发中重新创建(正确)动态控件。我通常会在Init或LoadViewState中重新创建它们。
另请参阅this
答案 2 :(得分:0)
用户控件无法按照我的方式实例化。还有另一种方法可以做到这一点。那就是使用Page_LoadControl方法。