簡體   English   中英

如何從后面的代碼填充動態添加的html select控件?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM