关于 webforms:ASP.NET Repeater FindControl 不适用于 Label,但适用于 Textbox

ASP.NET Repeater FindControl not working for Label, but works for Textbox

我在尝试从中继器获取控件时遇到问题。我有一个标签和一个文本框。标签给了我一个空引用错误,但是文本框正在工作。

标记:

1
2
3
4
5
6
7
8
    <ItemTemplate>
       
            ' runat="server" />
           
            ' step="1" type="number" />
       
    </ItemTemplate>
</asp:Repeater>

代码隐藏:

1
2
3
4
5
6
7
foreach (RepeaterItem repeaterRow in PalletsRepeater.Items)
{
    // This fails.
    string palletId = ((System.Web.UI.WebControls.Label)repeaterRow.FindControl("lblPalletId")).Text;
    // This works.
    string palletItemQty = ((System.Web.UI.WebControls.TextBox)repeaterRow.FindControl("txtPalletItemQty")).Text;
}

我在 Stack Overflow 上对此进行了研究,大多数答案都涉及使用 OnItemDatabound 事件,但是当我尝试实现这些答案时,标签仍然返回 null。就使用 OnItemDatabound 事件而言,我个人不理解这些建议。


改变

1
' runat="server" />

进入

1
' runat="server" />

你找不到它,因为它没有 ID