Когда не используется Runat = «сервер» в ASP.NET?

StackOverflow https://stackoverflow.com/questions/5849936

  •  27-10-2019
  •  | 
  •  

Вопрос

Когда тебе не нужно использовать runat="server" в asp.net?

РЕДАКТИРОВАТЬ: Спасибо за все ответы, но я действительно думал о runat="server" внутри <asp: ярлык.

Это было полезно?

Решение

Использовать runat=server Атрибут, когда вы используете элементы управления ASP.NET, и/или вам требуется программный доступ к этим элементам управления в вашем коде-заводе.

Управление HTML не требует этого атрибута. Это полезно, если у вас есть какой -либо элемент HTML <span> <div>, или же <table> Если вы хотите получить доступ к ним в коде.

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

Другие советы

Вам нужно использовать runat="server" На любом элементе управления, который вы хотите проанализировать как управление сервером.

Любой элемент с runat="server" будет проанализировано в управление сервером в Герархии страницы. Все остальное будет обрабатываться как простой текст и вставить LiteralControl Управление в иерархии страницы.

Исключением являются элементы, которые не являются реальными элементами, но специальные теги в другой теге сервера, например, ContentTemplate теги. Им не нужно runat="server" Потому что содержащий контроль будет проанализировать их.

Если вы не хотите, чтобы на стороне сервера ASP.NET отображала переменную на стороне сервера против нас.

Вообще говоря, вы не используете его, когда вам не нужно манипулировать элементом DOM на стороне сервера, например, которые используются только для целей макета.

Без runat = "server" также не было бы другого способа сделать управление сервером управления HTML. Это выглядит как странная вещь, потому что вы не можете сделать Runat = "Client".

Таким образом, в сумме вы не можете оставить это на каких -либо элементах управления ASP .NET когда -либо, и, вероятно, это были EaSiets и самый чистый способ найти все элементы управления на стороне сервера для разработчиков, которые создали веб -формы ASP .NET.

источник: http://mikeschinkel.com/blog/whyrunatserverpraspnetpart2/

Tag Runat = "Server" указывает, что код, содержащийся в блоке скрипта, будет работать на сервере (а не на клиенте). При выполнении ASP.NET будет создавать объекты на стороне сервера, которые содержат этот код, а также экземпляр класса страницы, чтобы содержать элементы управления, определенные внутри страницы как экземпляры их данного типа (System.Web.UI.WebControls.TextBox, Например). Этот объект на стороне сервера будет вызван по запросу пользователя и будет выполнять код в ответ на события.

Создать управление во время выполнения

Мне нужна одна метка в времени выполнения, это время не нужно Runat = "Сервер" не требуется

Пример

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

Этот код создает метку в среде выполнения в событии загрузки страницы

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top