从c#asp.net后面的代码中设置嵌入在asp:Panel中的<p>中的文本

时间:2015-11-27 15:06:04

标签: c# asp.net

我正在尝试根据URL查询字符串从我的代码隐藏文件中添加文本。我有一个asp:标签工作正常,但我需要添加文本到asp:Panel的正文,这是导致我的问题。这是我的代码:

ASPX文件:

<asp:Panel ID="PanelAboutUs" class="panel panel-primary" runat="server">
    <asp:Panel ID="PanelAboutUsHeader" class="panel-heading panel-success" runat="server">
        <asp:Label ID="LabelAboutUsHeader" runat="server"></asp:Label>
    </asp:Panel>

    <asp:Panel ID="PanelAboutUsBody" class="panel-body" runat="server">    
        <asp:TextBox ID="TextAboutUsBody" runat="server"></asp:TextBox>    
    </asp:Panel>

    <div class="divide-30"></div>       

    <div class="panel-footer">
        <div class="form-group">
            <asp:LinkButton runat="server" Text="Ok" CausesValidation="True" ID="CancelRequest" CssClass="btn btn-lg btn-block btn-success"  OnClick="Ok_OnClick"></asp:LinkButton>
        </div>
    </div>

</asp:Panel>

这是我背后的代码:

protected void Page_Load(object sender, EventArgs e)
{
    try
    {
        if (!string.IsNullOrEmpty(Request.QueryString["result"]))
            result = int.Parse(Request.QueryString["result"]);
        else Response.Redirect("Default.aspx");
    }
    catch
    {
        Response.Redirect("Default.aspx");
    }

    if (result == 0)
    {
        LabelAboutUsHeader.Text = "Cancelled!";
        TextAboutUsBody.Text = "Before you can schedule services you will need to enter a preferred payment method. You can add this payment method the next time you successfully login to your account.";
    }
    else
    {
        LabelAboutUsHeader.Text = "Success!";
        TextAboutUsBody.Text = "Your payment information has been successfully added. To access the system you must first validate your account via the email sent during registration.";
    }
}

问题出在我的asp:TextBox上。最初我使用<p>代替asp:TextBox对文本进行了硬编码,一切正常。但我无法使用动态文本更新<p>,因此我更改为asp:TextBox。 <{1}}的格式不正常,只有部分信息实际显示。

因此,考虑到所有这些解释,我的问题是如何使用asp:TextBox使我的原始代码工作,但从文件后面的代码更新。这是我的原始代码。

<p>

1 个答案:

答案 0 :(得分:0)

asp:Panel控件没有text属性。所以这一行:TextAboutUsBody.Text = "Your payment ..."无效。

以下是一种方法:

在您的html中,创建一个asp:Literal控件。

<asp:Panel ID="PanelAboutUsBody" class="panel-body" runat="server">    
    <p><asp:Literal runat="server" Id="litAboutUsBody"></asp:Literal></p>    
</asp:Panel>

并在你的代码背后设置你的文字:

litAboutUsBody.Text = "Your payment inform ...";