Dynamisch Benutzersteuerelement hinzufügen, die in der Seite AUF die Schaltfläche klicken Sie auf die NIC ist auch im Benutzer-control (ModalPopExtender im Benutzer-control)

Habe ich eine einfache Benutzer-Steuerelement, das will ich dynamisch erstellen jedes mal, wenn Benutzer klicken Sie auf die Schaltfläche (button speichert die Daten in der db.) Dies ist nur eine Art forum, wo user Antworten und es erscheint unterhalb der Nachricht.

Wenn Benutzer klicken Sie auf die Schaltfläche Antworten ein ModalPopupExtender-Fenster und Benutzer-geben Sie Ihre Antwort und senden.

Wenn ich auf submit klicken Sie im popup-Daten erhalten, gespeichert in der db, aber OnInit ausführen, bevor ButtonClick, so erstellen Sie ein neues Steuerelement, und fügen Sie Steuerelemente, die in diesem Szenario.

Dynamisch Benutzersteuerelement hinzufügen, die in der Seite AUF die Schaltfläche klicken Sie auf die NIC ist auch im Benutzer-control (ModalPopExtender im Benutzer-control)

Dynamisch Benutzersteuerelement hinzufügen, die in der Seite AUF die Schaltfläche klicken Sie auf die NIC ist auch im Benutzer-control (ModalPopExtender im Benutzer-control)

Control Code ASPX

<div style="border: .25em solid #000; margin: 10px; padding: 10px">
    <div>
        <asp:Label ID="lblMessage" runat="server" Width="200px"></asp:Label>
    </div>
    <div>
        <asp:Button ID="btnReply" runat="server" Text="Reply" />
    </div>
</div>
<table>
    <tr>
        <td>
            <asp:ModalPopupExtender ID="mpeReply" runat="server" TargetControlID="btnReply" PopupControlID="pnlReply"
                BackgroundCssClass="ModalPopupBG1">
            </asp:ModalPopupExtender>
            <asp:Panel ID="pnlReply" runat="server">
                <div class="popupbody">
                    <table width="90%">
                        <tr>
                            <td>
                                <asp:TextBox ID="txtReply" runat="server" Width="400px" CssClass="input1" TextMode="MultiLine"
                                    ValidationGroup="ReplyPopup"></asp:TextBox>
                            </td>
                        </tr>
                        <tr>
                            <td colspan="2">
                                <asp:Button ID="btnSubmit" runat="server" Text="Submit" ValidationGroup="ReplyPopup"
                                    OnClick="btnSubmit_Click" />
                                <asp:Button ID="btnClose" runat="server" Text="Cancel" CausesValidation="false" />
                            </td>
                        </tr>
                    </table>
                </div>
            </asp:Panel>
        </td>
    </tr>
</table>

Kontrolle durch die Nutzer .cs (klicken Sie auf die Schaltfläche speichern Sie einfach die Nachricht in die db)

protected void btnSubmit_Click(object sender, EventArgs e)
{
    message.Save();
}

Seite .cs

protected void Page_Init(object sender, EventArgs e)
{
    LoadControl();
}

protected void Page_Load(object sender, EventArgs e)
{
}

private void LoadControl()
{
    divMessageControl.Controls.Clear();

    MessageCollection msgs = MessageCollection.LoadAll();
    foreach (Message msg in msgs)
    {
        AddControlInPlaceHolder(msg);
    }
}

private void AddControlInPlaceHolder(Message msg)
{
    Control myUserControl = (Control)Page.LoadControl("~/Controls/MessageControl.ascx");

    Label lblMessage = myUserControl.FindControl("lblMessage") as Label;
    if (lblMessage != null)
    {
        lblMessage.Text = msg.MsgTxt;
    }

    divMessageControl.Controls.Add(myUserControl);
}
InformationsquelleAutor Kashif | 2012-11-05
Schreibe einen Kommentar