本人在项目开发中,遇到的问题,需求是:需要在Repeater里面绑定一个只读的字段,
页面代码:<label runat="server" id="skucode" name="skucode" genericname="skucode" style="width:200px;" class="textbox-bordernone invindetail"></label>,
页面后台代码:Label skucode = e.Item.FindControl("skucode") as Label;
但是 skucode 取出来的值一直是null,原因是:(页面是label是Html服务器控件(继承 System.Web.UI.HtmlControls),
而后台Label是WEB服务器控件(继承 System.Web.UI.WebControls))
HTML服务器控件与Web服务器控件区别(转载地址):http://www.cnblogs.com/aito/archive/2008/09/15/1291200.html
最后使用了两种解决方法:
1.页面代码和上面一致,没有改变,后台代码变化了.
页面后台代码:HtmlGenericControl skucode = e.Item.FindControl("skucode") as HtmlGenericControl;
HtmlGenericControl: 定义不由特定的 .NET Framework 类表示的所有 HTML 服务器控件元素的方法、属性和事件.
2.页面代码:<asp:Label runat="server" ID="skucode" genericname="skucode" Width="200" CssClass="textbox-bordernone invindetail"></asp:Label>
页面后台代码::Label skucode = e.Item.FindControl("skucode") as Label;
以上两种方法,都在项目中测试通过.