You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET C#代码RepeaterItem转Repeater类型转换错误求助

解决RepeaterItem转Repeater的类型转换错误

这个错误的原因很明确:你试图把控件的NamingContainer强制转换成Repeater类型,但实际上,位于Repeater的ItemTemplate内的控件,它的NamingContainer对应的是当前的Repeater项(RepeaterItem),而不是整个Repeater控件本身。

修正步骤

只需要修改后台代码里的类型转换语句即可:

原来的错误代码:

Repeater Item = (Repeater)btnCerFormsMon_Print.NamingContainer;

替换为:

RepeaterItem Item = (RepeaterItem)btnCerFormsMon_Print.NamingContainer;

修正后的完整后台代码

LinkButton btnCerFormsMon_Print = (LinkButton)sender;
RepeaterItem Item = (RepeaterItem)btnCerFormsMon_Print.NamingContainer;
Label referenceNo = (Label)Item.FindControl("rptrControlNo");
Label name = (Label)Item.FindControl("rptrRequester");
Label employeeNo = (Label)Item.FindControl("rptrEmployeeNo");
Label entryDate = (Label)Item.FindControl("rptrEntryDate");
Label document = (Label)Item.FindControl("rptrDocu");
Label Approver = (Label)Item.FindControl("rptrApprover");
Label requestStatus = (Label)Item.FindControl("rptrReqStatus");
Label rejectRemarks = (Label)Item.FindControl("rptrRejectRemarks");

hide_rptrControlNo.Text = referenceNo.Text;
hide_rptrStatus.Text = requestStatus.Text;

补充说明

如果之后你需要获取整个Repeater控件实例,直接引用页面上的ID rptrCERFormsMonItems 即可,或者通过Item.Parent层级查找,但在这个场景里,你只需要从当前项中获取Label控件,所以转换为RepeaterItem就完全满足需求了。

内容的提问来源于stack exchange,提问作者Adrian Caspe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 08:07:33