日期:2014-05-20  浏览次数:20384 次

如何将绑定的值赋给自定义的控件
我用DetailsView的自带功能做数据更新(DetailsView是绑定在一个数据源上的),有一个字段需要上传图片,我将上传功能做成一个用户控件,如下:
        string   oldName;
        public   string   OldName
        {
                get   {   return   oldName;   }
                set   {   oldName   =   value;   }
        }
        protected   void   Page_Load(object   sender,   EventArgs   e){...}
在前端DetailsView该自段的EditTemplete中加入这个控件,
   <EditItemTemplate>
           <uc2:UploadFile   ID= "UploadFile1 "   runat= "server " OldName= ' <%#   Eval( "F_PicH ")   %> '/>
        </EditItemTemplate>

但是用  <%#   Eval( "F_PicH ")   %>  这种方式传参数就为空,如果把内容换成随便的字符串就不空,请问为什么会这样呢

------解决方案--------------------
在OnPreRender/OnLoadComplete中处理即可……
你的DataBind方法一定要写在Page_Load中
------解决方案--------------------
in ascx:
protected void Page_PreRender(object sender, EventArgs e)
{
if (!string.IsNullOrEmpty(OldName))
{
//这里可以取到值
}
}