如何在 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
集合中访问它们。
或者(如其他答案)您可以使用服务器控件(CheckBox
或 CheckBoxList
)进行此类输入
【讨论】:
不正确 - 您不必设置 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 文件中使用它:<asp:CheckBox runat="server" ID="cbox1">
然后在你后面的代码中,调用cbox1.Checked
看是否被勾选。
【讨论】:
【参考方案4】:您也可以使用this.Request.Form
。像这样使用它:
this.Request.Form["ElementID"].
【讨论】:
【参考方案5】:使用 runat="server"
<input name="cbox1" id="cbox1" runat="server" type="checkbox">
你可以像这样直接使用:
cbox1.Checked
【讨论】:
以上是关于如何在 aspx.cs 文件中抓取 HTML 元素(复选框)C#的主要内容,如果未能解决你的问题,请参考以下文章
怎么才能在vs2008中建立只有aspx没有aspx.cs的文件
如何通过从 aspx.cs 文件中获取参数来执行数据库 CRUD 操作?
如何从 .cs 文件 (C#) 调用 JavaScript/jQuery 函数