Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ASP.NET:将值绑定到中继器内的自定义用户控件_Asp.net_Repeater - Fatal编程技术网

ASP.NET:将值绑定到中继器内的自定义用户控件

ASP.NET:将值绑定到中继器内的自定义用户控件,asp.net,repeater,Asp.net,Repeater,我有一个ASP.NET控件,它将数据绑定到中继器。在该中继器中,我有另一个自定义用户控件。我想根据当前绑定项向第二个控件传递一个值 <asp:Repeater runat="server" ID="ProductList"> <ItemTemplate> <p>Product ID: <%# Eval("ProductID") %></p> <myControl:MyCoolUserCont

我有一个ASP.NET控件,它将数据绑定到中继器。在该中继器中,我有另一个自定义用户控件。我想根据当前绑定项向第二个控件传递一个值

<asp:Repeater runat="server" ID="ProductList">
    <ItemTemplate>
        <p>Product ID: <%# Eval("ProductID") %></p>
        <myControl:MyCoolUserControl runat="server" ProductID='<%# Eval("ProductID") %>' />
    </ItemTemplate>
</asp:Repeater>

产品标识:

repeater项模板使用Eval语句正确地打印出我的产品ID,但是当我做同样的事情将产品ID传递给MyColuseControl时,它不起作用(如果MyColuseControl上的ProductID是一个可为null的Int32-我可以调试它,并且它始终为null)


有什么办法吗?

我做了一个小测试,如果ProductID是字符串,它就可以工作了。在usercontrol中将它改为和int之后,我遇到了类似的问题。 我在数据源中对中继器进行了int.Parse,并使其再次工作。 检查传入repeaters数据源的ProductId是否为int类型

我的测试程序

string[] values = new string[]{ "12", "13" };

MyRepeater.DataSource = from v in values
                        select new
                        {
                            ProdId = int.Parse(v)
                        };

MyRepeater.DataBind();

<asp:Repeater runat="server" ID="MyRepeater">
    <ItemTemplate>
        <My:control runat="server" ProductId='<%# Eval("ProdId") %>' />
    </ItemTemplate>
</asp:Repeater>

你能显示你的MyColuSerControl的代码吗?
public int? ProductId
{
    set { MyLabel.Text = value.Value.ToString(); }
}