Когда runat="server" не используется в asp.net?
Когда вам не нужно использовать runat="server"
в ASP.NET?
РЕДАКТИРОВАТЬ: Спасибо за все ответы, но я действительно думал о runat="server"
внутри <asp:
тег.
6 ответов
Использовать 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, и это был, пожалуй, самый простой и чистый способ найти все элементы управления на стороне сервера для разработчиков, создавших веб-формы ASP .Net.
источник: http://mikeschinkel.com/blog/whyrunatserverforaspnetpart2/
Tag runat="server" указывает, что код, содержащийся в блоке скрипта, будет работать на сервере (а не на клиенте). При выполнении ASP.NET создаст серверные объекты, которые содержат этот код, а также экземпляр класса Page, содержащий элементы управления, определенные внутри страницы, как экземпляры их данного типа (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";
}
}
этот код создает метку во время выполнения при событии загрузки страницы