добавление переменных в тег сервера [duplicate]

Оператор + может использоваться для преобразования переменной в число. Итак, это ...

"a" + + "b"

возвращает aNaN, но это ...

"a" + + "5"

возвращает a5

Поскольку b не является числом, + b возвращает NaN.

36
задан Joao Silva 8 September 2009 в 12:00
поделиться

6 ответов

Не знаете, как отметить это как таковое, но это немного дубликат. См. эту тему .

Я не думаю, что вложение кода в вашу разметку действительно сделает вашу разметку более четкой или более элегантной.

5
ответ дан Community 17 August 2018 в 14:34
поделиться
  • 1
    Поздний комментарий: я бы подумал, что настройка надписей на кнопку для простой переменной или функции имеет больше смысла в разметке, чем в коде позади. Особенно, если у вас много кнопок, установленных с текстом = «литерал», но одному или двум нужен какой-то код, это раздражает то, что большинство из них задано в разметке, но исключения находятся в коде позади. Теперь мне не только нужно искать в двух местах, чтобы увидеть текстовые значения, но я должен искать, чтобы найти место в коде позади. Я, конечно, не поставил бы десять страниц кода в разметку, а просто «text = & amp; lt;% = foo.bar% & amp; gt; кажется очень полезным. Без разницы. – Jay 22 June 2016 в 18:53
  • 2
    В реальном мире часто получают что-то работающие козыри, делающие что-то более ясное или более элегантное. – Matthew Lock 2 March 2017 в 08:06

Использовать Выражения привязки данных

<asp:Label ID="Label1" runat="server" Text="<%# DateTime.Now %>" ></asp:Label>

Код позади,

protected void Page_Load(object sender, EventArgs e){
  DataBind();
}
50
ответ дан adatapost 17 August 2018 в 14:34
поделиться

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

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

<asp:Label ID="myLabel" runat="server" />

Затем в вашей функции Page_Load установите значение поля «Текст» ваших меток

protected void Page_Load(object sender, EventArgs e)
{
    myLabel.Text = 'Whatever you want the label to display';
}

Эта функция будет находиться в вашем коде за файлом или, если вы не используете модель за моделью, внутри вам нужна страница aspx

<script runat="server">
    protected void Page_Load(object sender, EventArgs e)
    {
        myLabel.Text = 'Whatever you want the label to display';
    }
</script>

Удачи.

6
ответ дан RR. 17 August 2018 в 14:34
поделиться

В моем коде я использую что-то подобное легко, но в контроле данных, например, в элементе ListView Item

 <asp:HyperLink ID="EditAction" class="actionLinks" Visible='<%#Eval("IsTrue").ToString() != "True"%>' runat="server" NavigateUrl='<%# Eval("ContentId","/articles/edit.aspx?articleid={0}")%>' />

. Но когда я пытался использовать внешний элемент управления привязкой данных, используя & lt;% # ..% >, это просто не работает.

Вы можете легко сделать с

<a href="<%=myHref%>">My href</a> 

Но для серверных элементов управления и вне контроля привязки данных. Нам нужно вызывать DataBind () в событии pageload явно

<asp:Hyperlink ID="aa" NavigateUrl='<%#myHref%>' >
7
ответ дан Sachin Kumar 17 August 2018 в 14:34
поделиться

вы можете это сделать

 <asp:Label ID="Label1" runat="server" ><%= variable%></asp:Label>
13
ответ дан user1855575 17 August 2018 в 14:34
поделиться
  • 1
    Это должен быть принятый ответ. Никакой привязки данных не требуется. – JohnOpincar 24 August 2017 в 19:21

<asp:Label> компилируется во время выполнения и конвертируется в теги html. Вы можете установить текст с помощью codebehind или следующим образом:

<asp:Label id="Text1" runat="server" />
<% Text1.Text = this.Text;%>

UPD: Кажется, что мой вариант не работает, это лучше:

protected void Page_Load(object sender,EventArgs e) 
{
    Text1.Text = this.Text;
}
7
ответ дан x2. 17 August 2018 в 14:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: