asp.net,c#.net重复字段

时间:2011-09-01 11:08:37

标签: c# asp.net

我有一个asp.net网页abc.aspx
它包含

        <td class="style1">
            <asp:TextBox ID="chqdt1" runat="server" Width="71px"></asp:TextBox>
            <a href="javascript:OpenCalFuture('ctl00_ContentPlaceHolder1_chqdt1');">
            <img border="0" height="16" src="cal.gif" width="16" /></a>
        </td>
        <td>
            <asp:Button ID="Button1" runat="server" Text="add" style="margin-left: 0px" />
        </td>
        <td>
            &nbsp;</td>

我想在每个按钮点击事件中使用新的textbok创建新行并创建日历字段

3 个答案:

答案 0 :(得分:1)

处理按钮的OnClick事件并输入处理程序代码:

TextBox2 = New TextBox()
TextBox2.ID = "TextBox2"
TextBox2.Style("Width") = "71px"
Form1.Controls.Add(TextBox2)

http://support.microsoft.com/kb/317515

答案 1 :(得分:0)

以下是快速回答:

  1. 首先为文本框创建一个PlaceHolder。
  2. 处理按钮OnClick事件
  3. 为文本框和日历字段生成TextBox和Literal控件。
  4. 将生成的控件添加到PlaceHolder。
  5. 代码示例:

    <td class="style1">
        <asp:PlaceHolder ID="placeholder1" runat="server" />    
    </td>
    <td>
        <asp:Button OnClick="Button1_Click" ID="Button1" runat="server" Text="add" style="margin-left: 0px" />
    </td>
    

    代码背后:

    protected void Button1_Click(object sender, EventArgs e)
    {
        TextBox textbox = new TextBox();
        textbox.ID = "myTextBoxID";
    
        Literal literalCal = new LiteralCalendar();
        literalCal.Text = 
            "<a href=\"javascript:OpenCalFuture('" + textbox.ClientID + "');\"><img border=\"0\" height=\"16\" src=\"cal.gif\" width=\"16\" /></a>";
    
        placeholder1.Controls.Add(textbox);
        placeholder1.Controls.Add(literalCal);
    }
    

    上面的示例可能不是一个完整的(或有效的)代码,因为我没有对它进行测试,但我希望你能得到这个想法。

答案 2 :(得分:0)

你必须做@Dima所说的,但是你应该使用Placeholder控件而不是Forms1.Control来写:

placeholder.Controls.Add(TextBox2)

然后你也会这样做:

TextBox2.Focus();

专注于该文本框。