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

asp.net中的用户控件(ascx)及其可绑定属性不会显示在数据容器中,asp.net,data-binding,listview,user-controls,properties,Asp.net,Data Binding,Listview,User Controls,Properties,将具有可绑定属性的用户控件添加到asp.net页面时,单击Repeater Listview上的编辑数据绑定时,在设计器对话框中看不到其可绑定属性 我应该添加任何其他属性描述符吗 在中继器或类似控件中的标记类似于此 <uc1:Menu ID="Menu1" superman="<% Eval("userid") %>" runat="server" /> 我认为这可能是Visual Studio的一个问题,我还没有找到显示用户控件属性的方法,但您仍然可以绑定该属性

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

我应该添加任何其他属性描述符吗

在中继器或类似控件中的标记类似于此

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



我认为这可能是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") %>' />

这是输出:


我认为这可能是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") %>' />

这是输出:


我想你只是通过键入来做标记, 用户控件必须拖放到设计视图中的页面。
试试这个可能会有帮助。

我想你只是通过键入它来做标记, 用户控件必须拖放到设计视图中的页面。
尝试此方法可能会有所帮助。

您正在创建的用户控件是否来自任何类?例如Repeater或ListView?您可以粘贴代码吗?如果possible@MMK不,它不是从任何班级传来的。我尝试使用自定义html属性将值传递给用户控件为什么要使用智能标记中的向导设置这些值?它所要做的就是将您键入的内容粘贴到标记中,因此最好在那里执行(或者在您的代码隐藏中执行)。我看不出这值你50英镑。顺便说一句:我被你的截图弄糊涂了,所以我在这里说:要进入你显示的数据绑定向导,你必须右键单击设计视图中的数据列表并选择“编辑模板”->“项模板”,然后,您将看到自定义用户控件,当您将鼠标悬停在该控件上时,您将看到“用户控件任务”的智能标记。@miketeeve将其添加为答案并点击Jackpott您正在创建的用户控件是否来自任何类?例如Repeater或ListView?您可以粘贴代码吗?如果possible@MMK不,它不是从任何班级传来的。我尝试使用自定义html属性将值传递给用户控件为什么要使用智能标记中的向导设置这些值?它所要做的就是将您键入的内容粘贴到标记中,因此最好在那里执行(或者在您的代码隐藏中执行)。我看不出这值你50英镑。顺便说一句:我被你的截图弄糊涂了,所以我在这里说:要进入你显示的数据绑定向导,你必须右键单击设计视图中的数据列表并选择“编辑模板”->“项模板”,然后,您将看到自定义用户控件,当您将鼠标悬停在其上时,您将看到“用户控件任务”的智能标记。@MikeTeeVee将此添加为答案并点击Jackpott这也是我自己得出的结论。谢谢你的努力。您的回答解释了这种情况。如果自定义属性在aspx页面中绑定,在什么时候可以访问它?这意味着在UserControl.Page_Load method property==null中,在哪里可以使用它呢?这也是我自己得出的结论。谢谢你的努力。您的回答解释了这种情况。如果自定义属性在aspx页面中绑定,在什么时候可以访问它?这意味着在UserControl.Page_Load method property==null中,可以在哪里使用它?