如何处理动态输入与客户端/服务器端

时间:2019-01-06 16:04:34

标签: jquery html asp.net dynamic

我无法决定如何解决此问题。

我有一个asp文本框,用户在其中输入数字,并使用jquery onkeyup生成带有ASP网络表输入的行和单元格,容器是正文部分。

我可以在服务器端获取动态输入的值,但是问题是,如果由于按下了提交按钮而导致回发,并且验证失败或页面刷新,则表主体标签丢失了,原因是它是在html中生成的。为了解决这个问题,我基本上重复相同的代码,但从页面加载后面的代码开始。我检查生成表格内容的文本框是否有数字,是否有数字调用此函数。

private void GenerateCompsTableDueToPostBack()
    {
        for (int i = 0; i < Convert.ToInt32(txtNumComponentes.Text); i++)
        {
            var txtcomponente = Request.Form["Componente" + (i + 1)];
            var txtbase = Request.Form["Base" + (i + 1)];
            var txtcomprimento = Request.Form["Comprimento" + (i + 1)];

            TableRow row = new TableRow();

            TableCell cellID = new TableCell();
            TableCell cellComponente = new TableCell();
            TableCell cellBase = new TableCell();
            TableCell cellComprimento = new TableCell();

            cellID.Text = (i + 1).ToString();
            cellComponente.Text = "<input type='text' name='Componente" + (i + 1) + "' class='form-control form-control-sm rounded border border-dark' id='txtComponente" + (i + 1) + "'  value='" + txtcomponente + "'/>";
            cellBase.Text = "<input type='text' name='Componente" + (i + 1) + "' class='form-control form-control-sm rounded border border-dark' id='txtBase" + (i + 1) + "' value='" + txtbase + "'/>";
            cellComprimento.Text = "<input type='text' name='Componente" + (i + 1) + "' class='form-control form-control-sm rounded border border-dark' id='txtComprimento" + (i + 1) + "' value='" + txtcomprimento + "' />";
            row.Cells.Add(cellID);
            row.Cells.Add(cellComponente);
            row.Cells.Add(cellBase);
            row.Cells.Add(cellComprimento);
            tblComponentes.CssClass.Replace("componentes-table-invisible", "").Trim();
            tblComponentes.Rows.Add(row);
        }
    }

但是,使用Repeater可以更轻松地完成这些操作,并且可以生成文本框,并且可以更轻松地防止数据从之前执行过的代码中回发,但是服务器端没有Onkeyup事件,因此我切换了方法。

我的目标是通过onkeyup快速生成动态输入并在回发时绑定数据。

我的问题是,我应该采取哪种方式解决此问题?我还有其他方法可以做到吗?我不想使用ontextchanged,因为它需要失去对文本框的关注,而我对此有一些问题

0 个答案:

没有答案