簡體   English   中英

如何在沒有“runat=server”的情況下循環瀏覽 ASP.NET 頁面中的 html 控件

[英]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,因此Formsubmit某處submit (默認情況下, ASP.Net Web FormsHTTP POST ,因此是Postback ),您可以在服務器端遍歷HttpRequest.Form (亦稱“代碼隱藏”)。

  • 如前所述,最后,所有內容都呈現為標准HTML元素,您可以提供idclass並通過它們進行“循環”,並在前端進行所需的操作

    這是一個簡單的例子:

 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.

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