如何在 aspx.cs 文件中抓取 HTML 元素(复选框)C#

Posted

技术标签:

【中文标题】如何在 aspx.cs 文件中抓取 HTML 元素(复选框)C#【英文标题】:How to grab HTML elements in aspx.cs file (checkbox) C# 【发布时间】:2011-10-04 20:06:45 【问题描述】:

假设我有一些类似的东西(在我的 aspx 文件中):

<input name="chk" id="cbox1" type="checkbox">
<input name="chk" id="cbox2" type="checkbox">
<input name="chk" id="cbox3" type="checkbox">
<input name="chk" id="cbox4" type="checkbox">

如何获取 .aspx.cs 文件中每个元素的值? 我可以在 C# 中调用 GetElementsByName 之类的东西吗?

【问题讨论】:

【参考方案1】:

不,您不能,除非您将此控件标记为runat="server"

这是因为在 ASP.NET 中,所有静态 html 都变成了 Literal 控件,其 .Text 属性等于您的 html。在这种情况下,它将是:

<asp:Literal>
    <input name="chk" id="cbox1" type="checkbox">
    <input name="chk" id="cbox2" type="checkbox">
    <input name="chk" id="cbox3" type="checkbox">
    <input name="chk" id="cbox4" type="checkbox">
</asp:Literal>

如果您将任何元素标记为runat="server",您可以从当前页面的.Controls 集合中访问它们。

或者(如其他答案)您可以使用服务器控件(CheckBoxCheckBoxList)进行此类输入

【讨论】:

不正确 - 您不必设置 runat="server" 属性,您可以使用类似的方式访问这些值:string values = Request["chk"].ToString(); ? 是的,同意你不能以这种方式“设置”值,但他问如何“获取”这些值? @Dave Long 您无法在第一页加载时从它们那里获取值,它们是否被检查 - 只有在提交之后。我不认为@googlesearchsentmehere 意味着在提交后获取值。 好吧,很公平 - 在这种情况下,我同意你必须让它们成为服务器控件。【参考方案2】:

你需要在值服务器上添加属性runat,撒谎。

<input name="chk" id="cbox4" type="checkbox" runat="server">

那么你就可以这样做了。

var val = cbox4.value;

希望这会有所帮助。

【讨论】:

【参考方案3】:

在 aspx 文件中使用它:&lt;asp:CheckBox runat="server" ID="cbox1"&gt;

然后在你后面的代码中,调用cbox1.Checked看是否被勾选。

【讨论】:

【参考方案4】:

您也可以使用this.Request.Form。像这样使用它:

this.Request.Form["ElementID"].

【讨论】:

【参考方案5】:

使用 runat="server"

&lt;input name="cbox1" id="cbox1" runat="server" type="checkbox"&gt;

你可以像这样直接使用:

cbox1.Checked

【讨论】:

以上是关于如何在 aspx.cs 文件中抓取 HTML 元素(复选框)C#的主要内容,如果未能解决你的问题,请参考以下文章

新手求助,aspx.cs 里如何实现立即跳转网页

怎么才能在vs2008中建立只有aspx没有aspx.cs的文件

如何通过从 aspx.cs 文件中获取参数来执行数据库 CRUD 操作?

如何从 .cs 文件 (C#) 调用 JavaScript/jQuery 函数

使用 jquery ajax 在 aspx.cs 文件中调用 web 方法

用juery的ajax方法调用aspx.cs页面中的webmethod方法示例