<% # Eval ("Name1.Text")%> пусто - PullRequest
       16

<% # Eval ("Name1.Text")%> пусто

0 голосов
/ 06 января 2011
<asp:Literal ID="Name1" runat="server">Item Name</asp:Literal>
<asp:LinkButton runat="server" EnableViewState="false" Text='<%#Eval("Name1.Text")%>' />

Почему Eval() возвращается пустым?

Спасибо.

Ответы [ 5 ]

2 голосов
/ 06 января 2011

Вы можете оценить элементы управления, которые были привязаны к данным. Если вы звоните Page.DataBind, вы можете проверить все элементы управления, которые NamingContainer являются Page. Если вы, например, DataBind a Gridview, вы можете оценить элементы управления в GridRows.

0 голосов
/ 06 января 2011

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

Если это автономный элемент управления, вам не нужно передавать эти значения в качестве аргумента команды, а просто обращаться к ним непосредственно внутри события Click или OnCommand.

Если элемент управления находится внутри элемента управления DataBound, вы можете установить аргумент Command в выделенном фрагменте кода.

0 голосов
/ 06 января 2011

На самом деле я хотел бы сделать это:

<asp:ImageButton runat="server" ID="addToCartIMG" OnCommand="btnAdd_Click" EnableViewState="false" CommandArgument='<%# itemId1.Value + ";" + Name1.Text %>' ImageUrl="<%$Resources:MasterPage, Image_AddToCart%>" />

где Item1 скрытоField, а Name1 - литерал.

Когда я отлаживаю метод btnAdd_Click, CommandEventArgs будет пустым.

0 голосов
/ 06 января 2011

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

0 голосов
/ 06 января 2011

Я не думаю, что контроль будет выполнен вовремя.

Сделайте это в коде позади.

protected void Page_Init(object sender, Eventargs e)
{    
    lnkButtonID.Text = Name1.Text;   
    lnkButtonID.CommandArgument = Name1.Text; 
}
...