在ASP.NET中的TextBoxes周围加载内容

时间:2014-05-12 04:48:03

标签: c# javascript jquery html asp.net

我尝试在ASP.NET中创建表单,但我想知道是否可以在TextBox周围动态添加HTML内容。

以下是代码:

<%@ Page Title="" Language="C#" MasterPageFile="~/MPpacientes.master" AutoEventWireup="true" CodeFile="CuestionarioGeneral.aspx.cs" Inherits="CuestionarioGeneral" %>

<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="navbar" Runat="Server">
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="headertitle" Runat="Server">
Cuestionario General
</asp:Content>
<asp:Content ID="Content4" ContentPlaceHolderID="contentbox" Runat="Server">
<legend>Lorem ipsum dolor sia met etcetcetc</legend>
<%-- question1 --%>
<asp:Label ID="lbl1" runat="server" Text="1"></asp:Label>
<div class="input-control text" data-role="input-control">
    <asp:TextBox ID="txt1" runat="server"></asp:TextBox>
    <button class="btn-clear" tabindex="-1"></button>
</div>
<%-- question2 --%>
<asp:Label ID="lbl2" runat="server" Text="2"></asp:Label>
<div class="input-control text" data-role="input-control">
    <asp:TextBox ID="txt2" runat="server"></asp:TextBox>
    <button class="btn-clear" tabindex="-1"></button>
</div>
<%-- question3 --%>
   <%-- etc --%>

正如您在代码中看到的那样,&lt; div>并且&lt;按钮&gt;标签在每个问题中根本没有变化,所以我想知道是否有某种方法可以从脚本加载它们,这样当页面加载时它们会自动环绕每个TextBox。 提前谢谢。

2 个答案:

答案 0 :(得分:0)

如果您只是需要添加问题,可以使用<asp:label />代码,甚至是Html label代码并将其设为runat="server"。 然后,您可以在

后面的代码中动态地将文本添加到标签中

答案 1 :(得分:0)

每个页面的总问题是不同还是相同? 如果不同,您可以尝试使用asp:Repeater。您可以动态更改问题,并为每个问题保持按钮和div静态。

例如:

<asp:Repeater ID="rptQuestion" runat="server" OnItemDataBound="rptQuestion_ItemDataBound">
    <ItemTemplate>
        <asp:Label ID="lblQuestion"></asp:Label>
        <div class="input-control text" data-role="input-control">
            <asp:TextBox ID="txtAnswer" runat="server"></asp:TextBox>
            <asp:Button CssClass="btn-clear" TabIndex="-1" ID="btnClear" runat="server"></button>
        </div>
    </ItemTemplate>
</asp:Repeater>

修改:

要编辑标签文字,您可以先将所有问题添加到List<String>然后将其绑定到转发器,这是示例:

在PageLoad上:

protected void Page_Load(object sender, EventArgs e)
    {
        List<String> listQuestion = new List<String>();

        foreach(string question in ...)
        {
            listQuestion.Add(question);
        }

        rptQuestion.DataSource = listQuestion;
        rptQuestion.DataBind();
    }

然后在ItemDataBound事件上:

protected void rptQuestion_ItemDataBound(object sender, RepeaterItemEventArgs e)
        {
            if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
            {
                String question = (String)e.Item.DataItem;
                Label lblQuestion = (Label)e.Item.FindControl("lblQuestion");
                lblQuestion.Text = question;
            }
        }

您无需更改Label和TextBox的ID,因为转发器中的每个项目的ID始终不同