只要文本框不为空,就添加表行.. Net / c#
本文关键字:添加 Net 文本 | 更新日期: 2023-09-27 17:49:45
我目前有一个两行的表。每行包含一个复选框(第一行除外),其中一列包含一个复选框,下一列包含一个标签,第三列包含一个文本区域。
我目前有两个问题,一个是我的"添加行"按钮只会添加一行(如果我再次点击它,它不会添加额外的行)。我注释掉了ID字段,认为这可能是为什么它不会添加另一行(不希望两个项目共享和ID),然而,情况并非如此。
我不知道如何做的另一件事是使这个函数在我开始输入文本框"mcOpt1"时自动调用。理想情况下,我希望它将添加一行名为"mcOpt2"的文本框,这将再次添加另一行,只要一个有文本/不是空的。
我对这些语言很陌生,所以如果有的话,如何才能实现呢?
表: <asp:Table ID="mcOptTable" runat="server" CssClass="halfwide">
<asp:TableRow runat="server" ID="question">
<asp:TableCell runat="server"></asp:TableCell>
<asp:TableCell runat="server">Question:</asp:TableCell>
<asp:TableCell runat="server">
<asp:TextBox ID="mcQuestion" runat="server" TextMode="MultiLine"></asp:TextBox>
</asp:TableCell>
</asp:TableRow>
<asp:TableRow runat="server" ID="opt1">
<asp:TableCell runat="server">
<asp:CheckBox ID="mcOpt1IsCorrect" runat="server" CssClass="leftmargin10" />
</asp:TableCell>
<asp:TableCell runat="server">Option 1:</asp:TableCell>
<asp:TableCell runat="server">
<asp:TextBox ID="mcOpt1" runat="server" TextMode="MultiLine"></asp:TextBox>
</asp:TableCell>
</asp:TableRow>
</asp:Table>
按钮
<asp:Button ID="addRow" runat="server" Text="Add a Row" OnClick="addRow_Click" />
c# Add Table行代码
protected void addRow_Click(object sender, EventArgs e)
{
TableRow row = new TableRow();
TableCell optText = new TableCell();
TableCell tBox = new TableCell();
TableCell isCor = new TableCell();
optText.Text = "Option 2:";
tBox.Text = "text box here";
//tBox.ID = "opt2";
isCor.Text = "?";
//isCor.ID = "opt2IsCorrect";
row.Cells.Add(isCor);
row.Cells.Add(optText);
row.Cells.Add(tBox);
mcOptTable.Rows.Add(row);
}
问题是您不"记住"回发之间添加的行。第一次添加行(服务器端)时,它在回发时呈现。但是,下次您想要添加一行(服务器端)时,前一行不再存在,主要是因为表再次以原始状态呈现。
您需要做的是"记住"您添加的行,并确保在每次回发时呈现所有这些行。