[英]How to populate dynamically added html select controls from code behind?
我已經在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一樣。
查看下面的鏈接。 在ASP.NET代碼背后訪問客戶端動態控件
您應該能夠在服務器端按名稱訪問表單元素,如下所示:
var val = Request.Form["YOUR_CONTROLS_NAME"];
但是,您將必須負責使用唯一名稱命名添加的控件。
客戶端和服務器端代碼是兩個不同的東西。 據我所知,您無法做任何您想做的事情。
例如,如果要填充數據庫中的下拉列表,您可以做的是將數據加載到隱藏字段或控件中,然后使用javascript填充數據。
聽起來對我來說很復雜,如果您不希望進行丑陋的回發,那么在服務器端進行所有操作並使用更新面板可能會更容易。
在沒有完全看到您的項目的情況下很難說出什么是最適合您的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.