【问题标题】:How to access HTML control in C# code behind without "runat=server"?如何在没有“runat=server”的情况下访问 C# 代码中的 HTML 控件?
【发布时间】:2012-06-09 09:06:03
【问题描述】:

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

【问题讨论】:

    标签: c# javascript controls dotnetnuke runatserver


    【解决方案1】:

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

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

    【讨论】:

    • 谢谢你的回复,你能告诉我怎么做吗?我不熟悉javascript,所以我不知道如何将值保存到控件中。提前致谢!
    【解决方案2】:

    如果您可以访问 jQuery 之类的 javascript 框架,则可以获取表格行数并将其添加到作为您要发布的表单的一部分的隐藏元素中,如下所示:

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

    【讨论】:

    • 谢谢,但我想尽可能减少使用其他 javascript 工具。
    【解决方案3】:

    如果您不想使用 Javascript,可以在后面的代码中使用它。

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

    【讨论】:

      猜你喜欢
      • 2013-12-03
      • 1970-01-01
      • 2012-03-11
      • 2016-02-11
      • 2014-08-04
      • 2018-10-28
      • 2010-09-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多