1

我已经在asp.net和c#中编程了一周左右,请多多包涵。

我正在尝试在asp c#中做一个收据生成器,看起来有点像这样:

收据

蓝色按钮使用此 javascript 函数向表中添加新行:

function nuevo(){
$("#tablaUsuarios").append("<tr>" +
    "<td><select name='listaConceptos' id='listaConceptos' runat='server'></select></td>" +
    "<td><input name='precio' id='precio' type='text' size='15' runat='server' readonly/></td>" +
    "<td><input type='button' value='Eliminar' onclick='eliminar(this)' class='btn btn-danger eliminar'></td>"+
    "</tr>")
}

但是,由于我在运行时通过 javascript 添加控件,因此我无法从后面的代码中访问它们,就像它们是 DropDownList 控件一样,添加runat="server"也是无用的,因为在运行时我无法打开它们进入服务器控件,有什么方法可以访问控件,以便我可以填充、设置数据源等,就好像它是一个 DropDownList?或者任何其他动态生成和填充 DDL 的方式?

我考虑过用我需要的数据库中的所有数据填充一个隐藏的 DropDownList,并在创建时将其所有属性复制到其他选择控件,但我不知道它是否会像具有 DataValueFields 和 TextFields 的 DDL。

4

2 回答 2

1

查看下面的链接。 在 ASP.NET 代码隐藏中访问客户端动态控件

您应该能够在服务器端按名称访问表单元素,如下所示:

var val = Request.Form["YOUR_CONTROLS_NAME"];

但是,您必须负责为添加的控件命名为唯一名称。

于 2012-12-12T00:12:19.340 回答
0

客户端和服务器端代码是两个不同的东西。据我所知,没有办法做你所要求的。

例如,如果您想从数据库中填充下拉列表,您可以将数据加载到隐藏字段或控件中,然后使用 javascript 填充数据。

对我来说听起来相当复杂,如果你不想要丑陋的回发,也许在服务器端做所有事情并使用更新面板会更容易。

如果不完全了解您的项目,很难说出什么最适合您。

于 2012-12-12T00:07:11.677 回答