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