![](/img/trans.png)
[英]How to remove controls with runat=“server” specified in asp.net
[英]How can I loop through html controls in ASP.NET page with No "runat=server"
如何在沒有"runat=server"
屬性的 ASPX 頁面中遍歷 html 控件? 由於使用了代碼塊和動態變量,我無法添加屬性:
<input lang='<%= language.ID %>' checked='<%= check(x) %>' />
假設HTML輸入位於表單內,則表單發布后它將在請求中,因此我們可以從那里獲取它。
<form id="form1" runat="server">
<input name="myName" lang='<%= language.ID %>' checked='<%= check(x) %>' />
<input type="submit" title="submit" />
</form>
要獲取myValue,它是:
protected void Page_Load(object sender, EventArgs e)
{
if (this.IsPostBack)
{
string myValue = Request.Form["myName"];
}
}
循環瀏覽以“ my”開頭的名稱:
foreach (string key in Request.Form.Keys)
{
if (key.StartsWith("my"))
Response.Write(Request.Form[key]);
}
如何在沒有“ runat = server”的ASPX頁面中遍歷html控件...
取決於您要執行的操作。
正如其他答案所指出的那樣,到今天結束時,所有內容都是HTML,因此Form
將submit
某處submit
(默認情況下, ASP.Net Web Forms
的HTTP POST
,因此是Postback
),您可以在服務器端遍歷HttpRequest.Form
(亦稱“代碼隱藏”)。
如前所述,最后,所有內容都呈現為標准HTML元素,您可以提供id
或class
並通過它們進行“循環”,並在前端進行所需的操作 。
這是一個簡單的例子:
var eles = document.getElementsByClassName('inputs'); var count = eles.length; var str = "there are " + count + " elements:<br>"; for (var i = 0; i < count; i++) { str = str + "name: " + eles[i].name + " id: " + eles[i].id + "<br>"; } var result = document.getElementById("result"); result.innerHTML= str;
<input name="foo" lang='some-server-generated-string-1' id="ele1" class="inputs" /> <input name="bar" lang='some-server-generated-string-2' id="ele2" class="inputs" /> <p id="result"></p>
Hth。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.