从ASP.NET标记设置UserControl属性值

时间:2013-10-08 16:30:42

标签: asp.net markup

我需要从标记中设置用户控件的属性值。

我需要在标记中设置我的用户控件中名为“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>

1 个答案:

答案 0 :(得分:2)

您需要将Bindable属性添加到您的媒体资源中:

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