2013-10-08 3 views
2

Мне нужно установить значение свойства пользовательского элемента управления из разметки.Set UserControl Значение свойства Из разметки ASP.NET

Мне нужно установить свойство «ItemIndex» в моем элементе управления пользователя из разметки.

по какой-то неудачной причине, "<%: x%>" часть ItemIndex = "<%: x%>" не разрешается.

В основном значение ItemIndex становится «<%: x%>», а не становится фактическим значением x.

Ниже приведен код (обратите внимание на комментарии в CAPS).

<%@ Register TagPrefix="DDLControls" TagName="MainMenuItem" Src="~/Views/Header/MainMenuItemControl.ascx" %> 
<div id="MainMenu"> 
    <table cellpadding="0" cellspacing="0" border="0"> 
    <tr> 
     <% 
      foreach (MenuItem mi in Model.Items) 
      { 
       string x = Model.Items.IndexOf(mi).ToString(); 
     %> 
     <td> 
      <%= x %> <<-- THIS GETS RESOLVED TO 0,1,2,3,4,... 
      <DDLControls:MainMenuItem ItemIndex="<% x %>" runat="server" /> <<-- THIS DOESN'T GET RESOLVED 
     </td> 
     <% 

      } 
     %> 
    </tr> 
</table> 
</div> 

ответ

2

Вам нужно добавить атрибут Bindable к вашей собственности:

[System.ComponentModel.Bindable(true)] 
public string SomeValue 
{ 
    get 
    { 
     return someValue; 
    } 
    set 
    { 
     someValue = value; 
    } 
} 
+0

Есть нечто большее, что должно быть сделано с кодом вызова? – Reuben