当HTML元素没有runat=";服务器”;属性
本文关键字:quot 服务器 属性 元素 HTML runat | 更新日期: 2023-09-27 18:27:02
我有一个ASP.NET C#网站,当单击按钮时,我正试图从页面中的html中检索内部html。
我的问题:我使用函数FindControl(),但当它应该找到元素时,它会返回null。为什么会发生这种事,我做错了什么?
我的HTML页面:
<%@ Page Title="test" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true"
CodeBehind="test.aspx.cs" Inherits="test" %>
<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="ActualContent">
<div class="regMainContainer mainContainer container">
<!-- Attempting to get the below div -->
<!-- Knowtice it does not have runat="server",
I would prefer not to do that if I dont need to -->
<div id="courseDiv" class="courseContainer">
</div>
</div>
</asp:content>
单击按钮时执行的"我的代码"(在test.aspx文件中:
HtmlGenericControl d = (HtmlGenericControl)FindControl("courseDiv");
FindControl只能查找具有runat="server"属性的控件。好消息是,您可以轻松地将div更改为面板,并以这种方式添加数据。
坏消息是,这仍然不允许您访问div的innerhtml,.net将其视为其他控件的容器。
最好的方法是使用某种形式的ajax,因为客户端脚本可以读取这些内容并将其传递给服务器端方法
对于未标记runat="server"的内容,您将无法使用FindControl。这是因为任何未标记为runat="server"的元素在运行时都会被解析为一个巨大的文本文本。不过,您可以将runat="server"添加到任意的html元素中。