Когда runat = "server" не используется в asp.net? - PullRequest
4 голосов
/ 01 мая 2011

Когда вам не нужно использовать runat="server" в ASP.NET?

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

Ответы [ 6 ]

3 голосов
/ 01 мая 2011

Используйте атрибут 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";
1 голос
/ 01 мая 2011

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

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

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

0 голосов
/ 07 сентября 2013

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

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

Пример

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

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

0 голосов
/ 07 сентября 2013

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

0 голосов
/ 24 мая 2011

Без runat = "server" также не было бы другого способа сделать html-элементы управления серверными.Это выглядит странно, потому что вы не можете выполнить runat = "client".

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

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

0 голосов
/ 01 мая 2011

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

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

...