【问题标题】:When isn't runat="server" used in asp.net?什么时候在 asp.net 中不使用 runat="server"?
【发布时间】:2011-08-16 12:51:21
【问题描述】:

什么时候不需要在 ASP.NET 中使用runat="server"

编辑:感谢所有答案,但我真的在想 runat="server"<asp: 标签内。

【问题讨论】:

    标签: asp.net runatserver


    【解决方案1】:

    当您使用 ASP.NET 控件和/或您需要在代码隐藏中以编程方式访问这些控件时,请使用 runat=server 属性。

    HTML 控件不需要此属性。如果您有任何 HTML 元素,例如 <span> <div><table>,当您希望能够在代码隐藏中访问它们时,它会很有用。

    <asp:Label runat="server" id="foo" />
    <div runat="server" id="bar />
    ...
    foo.Text = "Hello Label";
    foo.Attributes["class"] = "baz";
    

    【讨论】:

      【解决方案2】:

      您需要在任何要被解析为服务器控件的控件上使用runat="server"

      任何带有runat="server" 的元素都将被解析为页面层次结构中的服务器控件。其他任何内容都将作为纯文本处理,并放入页面层次结构中的LiteralControl 控件中。

      例外情况是不是真实元素的元素,而是另一个服务器标签中的特殊标签,例如ContentTemplate 标签。它们不需要runat="server",因为包含控件会解析它们。

      【讨论】:

        【解决方案3】:

        当您不希望服务器端 ASP.NET 向我们呈现服务器端变量时。

        一般来说,当您不需要在服务器端操作 DOM 元素时,您不会使用它,例如仅用于布局目的。

        【讨论】:

          【解决方案4】:

          没有 runat="server" 也没有其他方法可以制作 html 控件服务器端控件。它看起来确实很奇怪,因为您不能执行 runat="client"。

          因此,总而言之,您永远不能在任何 ASP .Net 控件上忽略它,它可能是为创建 ASP .Net Web 表单的开发人员查找所有服务器端控件的最简单、最简洁的方法。

          来源:http://mikeschinkel.com/blog/whyrunatserverforaspnetpart2/

          【讨论】:

            【解决方案5】:

            标记 runat="server" 表示脚本块中包含的代码将在服务器上运行(而不是在客户端上)。执行时,ASP.NET 将创建包含此代码的服务器端对象以及 Page 类的实例,以包含在页面内定义的控件作为其给定类型的实例(System.Web.UI.WebControls.Textbox,例如)。此服务器端对象将根据用户请求调用,并将执行代码以响应事件。

            【讨论】:

            • qus 是什么时候在 asp.net 中不使用 runat="server"?而不是什么时候在 asp.net 中使用 runat="server"
            【解决方案6】:

            在运行时创建控件

            我在运行时需要一个不需要 runat="Server" 的标签

            例子

            protected void Page_Load(object sender, EventArgs e)
            {
                if (!IsPostBack)
               {
                Label  lblNew = new Label();
                lblNew.ID ="lblnew";
                lblNew.Text ="Test";
                }
            }
            

            此代码在页面加载事件的运行时创建标签

            【讨论】:

            • 嗯......不明白你在说什么 - 可能是语言问题,不过,我不是以英语为母语的人 :-) 请尝试澄清。
            猜你喜欢
            • 2013-05-20
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2012-03-13
            • 1970-01-01
            • 1970-01-01
            • 2022-11-10
            相关资源
            最近更新 更多