Я могу использовать <% = … %> для установки свойства элемента управления в ASP.NET?

Ваша система испытывает затруднения при показе Личинки и консоли Linux. Это - проблема личинки, которая в настоящее время работается на. (На самом деле остановленный в средстве отслеживания ошибки), Чтобы войти в Windows, запустите, и несколько секунд в, и попытаться нажать в † “ (клавиша со стрелкой вниз) 5 раз (я посмотрел на Вашу pastebin запись), и нажмите Enter. Обратите внимание, что это относится к конфигурации OP, поэтому если у Вас есть конфигурация GRUB, отличающаяся от OP's, затем это не может помочь Вам.

, Если это перестало работать, держите сдвиг , когда он говорит loading system, и попытайтесь придавить 5 раз, сопровождаемый входят, надо надеяться, загружая Windows. К сожалению, пока Вы не можете выяснить то, что приказывает, чтобы меню было в, Вы блуждаете в темноте. Я попробовал бы видеокарту ATI. Восстановление начальной загрузки не поможет, но можно попытаться использовать lilo вместо Личинки.

, С другой стороны, Вы могли попробовать загружающаяся Личинка через ntldr, таким образом, у Вас есть выбор для Windows перед вхождением в слепую личинку но это не идеально, и должен избежаться . Я в настоящее время вижу эту проблему со своей картой Nvidia, и это обходное решение еще не привело меня к сбою.

6
задан Roger Lipscombe 1 September 2009 в 14:30
поделиться

9 ответов

Вы можете использовать DataBinding:

<asp:TextBox 
    ID="tbName" 
    CssClass="formField" 
    MaxLength="<%# Constants.MaxCharacterLengthOfGameName %>" 
    runat="server">
</asp:TextBox>

и в своем коде за вызовом Page_Load:

tbName.DataBind(); 

или напрямую привязать страницу к данным:

this.DataBind();
14
ответ дан 8 December 2019 в 02:27
поделиться

Синтаксис <% = expression%> транслируется в Response.Write (выражение), вводя значение выражения в выводимые данные страницы. Поскольку <% = expression%> транслируется (по сути) в Response.Write, эти операторы нельзя использовать для установки значений свойств веб-элемента управления. Другими словами, у вас не может быть разметки, подобной следующей:

<asp:Label runat="server" id="CurrentTime" Text="<%= DateTime.Now.ToString() %>" />

Источник: http://aspnet.4guysfromrolla.com/articles/022509-1.aspx

6
ответ дан 8 December 2019 в 02:27
поделиться

Попробуйте использовать построитель пользовательских выражений:

// from http://weblogs.asp.net/infinitiesloop/archive/2006/08/09/The-CodeExpressionBuilder.aspx
[ExpressionPrefix("Code")]
public class CodeExpressionBuilder : System.Web.Compilation.ExpressionBuilder
{
    public override CodeExpression GetCodeExpression(BoundPropertyEntry entry,
       object parsedData, ExpressionBuilderContext context)
    {
        return new CodeSnippetExpression(entry.Expression);
    }
}

А затем используйте его как

<asp:TextBox ID="tbName" CssClass="formField" MaxLength="<%$ Code: Constants.MaxCharacterLengthOfGameName %>" runat="server"></asp:TextBox>
6
ответ дан 8 December 2019 в 02:27
поделиться

Как сказал Ропстах, он не будет работать с синтаксисом <% = expression%>.

Но вы, вероятно, могли бы использовать привязку данных, которая просто требует, чтобы вы использовали синтаксис <% # expression%>, а затем вызывали MyTextBox.Databind в CodeBehind.

Конечно, в этот момент может быть более понятным просто выполнить всю операцию в CodeBehind.

Другая альтернатива: если вы действительно хотите, чтобы это было декларативно, вы можете уйти от метки и встроить свое выражение в тег span. Таким образом, вы все равно сможете применять CSS и т. д., и я думаю, что синтаксис <% = expression%> подойдет.

4
ответ дан 8 December 2019 в 02:27
поделиться

Почему бы вам просто не установить его в функции обратного вызова Page_Init в коде позади?

3
ответ дан 8 December 2019 в 02:27
поделиться

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

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

1
ответ дан 8 December 2019 в 02:27
поделиться

Этот пример ориентирован на получение максимальной длины из базовых типов sql в linq. Но вы сможете настроить его под свои нужды

http://blog.binaryocean.com/2008/02/24/TextBoxMaxLengthFromLINQMetaData.aspx

1
ответ дан 8 December 2019 в 02:27
поделиться

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

<asp:TextBox 
    ID="tbName" 
    CssClass="formField" 
    MaxLength='<%# Constants.MaxCharacterLengthOfGameName %>' 
    runat="server" />

Затем в коде за

protected void Page_Load(object sender, EventArgs e) {
    Page.DataBind();
}
1
ответ дан 8 December 2019 в 02:27
поделиться

Вы можете встроить «нормальный» код в файл .aspx, если хотите, например:

<%
tbName.MaxLength = Constants.MaxCharacterLengthOfGameName
%>
<asp:TextBox ID="tbName" CssClass="formField" runat="server"></asp:TextBox>

Это возвращает нас к более старому «классическому» способу ASP сделать это.

1
ответ дан 8 December 2019 в 02:27
поделиться
Другие вопросы по тегам:

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