asp.net中的用户控件(ascx)及其可绑定属性不会显示在数据容器中

时间:2011-09-28 23:50:58

标签: asp.net data-binding listview user-controls properties

当我向asp.net页面添加一个具有可绑定属性的用户控件时,当我在Repeater-Listview上单击编辑数据绑定时,我在设计器的对话框中看不到它的可绑定属性

我应该添加任何其他的描述符吗?

标记在转发器或类似控件中会是这样的

<uc1:Menu ID="Menu1" superman="<% Eval("userid") %>" runat="server" />

在可绑定属性上我只使用

[System.ComponentModel.DefaultBindingProperty("superman")]
    [System.ComponentModel.Bindable(true)]
    public int superman
    {
        get;
        set;
    }

People discuss it here but they couldn't find a solution

This is the problematic place


And this is the definition of the user control

2 个答案:

答案 0 :(得分:4)

我认为这可能是Visual Studio的问题,我还没有找到显示用户控件属性的方法,但是,即使它没有出现在选项框中,你也可以绑定属性:

这是绑定它的方式:

在后面的用户控制代码中:

[Bindable(true)]
public string MyProperty
{
    get
    {
        return this.lblMessage.Text;
    }
    set
    {
        this.lblMessage.Text = value + DateTime.Now.ToString();
    }
}

在ASCX文件中:

<asp:Label ID="lblMessage" Text="something" runat="server" />

在ASPX页面中:

<asp:DataList runat="server" ID="dataList" Width="50%" 
    DataSourceID="ObjectDataSource1">
    <ItemTemplate>
        <uc1:WebUserControl1 runat="server" ID="myUC" MyProperty='<%# Eval("Name") %>' />
    </ItemTemplate>
</asp:DataList>
<asp:ObjectDataSource ID="ObjectDataSource1" runat="server" 
    SelectMethod="GetProducts" TypeName="WebApplication1.Repository">
</asp:ObjectDataSource>

只需在标记中添加您在UC中创建的属性:

<uc1:WebUserControl1 runat="server" ID="myUC" MyProperty='<%# Eval("Name") %>' />

这是输出:

enter image description here

答案 1 :(得分:-4)

我认为你只需输入标记即可  用户控件必须拖放到设计视图中的页面。 试试这可能会有所帮助。