如何在没有“runat=server”的情况下访问 C# 代码中的 HTML 控件

本文关键字:访问 情况下 代码 控件 HTML server runat | 更新日期: 2023-09-27 18:36:21

我知道你可以使用 FindControl 从 C# 中的代码隐藏访问服务器端 HTML 控件(其中包含"runat=server")。但是我的 HTML 表是动态表,所以我不能在服务器端使用它。如何在没有"runat=server"的情况下获取此 HTML 表的 Rows.Count?非常感谢。更新:环顾四周后,我遇到了一些涉及将值分配给隐藏字段后回发的解决方案。关键是,隐藏字段必须采用物理和单独的 html 形式,而我正在 ascx 文件上开发一个 DotNetNuke 模块控件,该文件继承了模块形式。如果我添加另一个表单,它会说我不能有 2 个带有 runat=server 的表单。仍在这里寻找解决方案。

如何在没有“runat=server”的情况下访问 C# 代码中的 HTML 控件

如果 HTML 控件

位于服务器端,即如果它具有 runat="server" 属性,则可以从代码隐藏访问 HTML 控件。

如果您的表由一些 javascript 代码填充,则可以在回发之前将行号保存在表单字段中。

如果你可以访问像jQuery这样的javascript框架,你可以获取表行数并将其添加到一个隐藏元素中,该元素是你发布的形式的一部分,如下所示:

var numberOfRows = $('#yourTableID tr').length;
$('#myHiddenValue').val(numberOfRows);

如果你不想使用 Javascript,你可以在代码隐藏中使用。

string strValue = Page.Request.Form["name of the textarea HTML control"].ToString();