问题描述
现有:第一个自定义控件menu.ascx第二个自定义控件menulist.ascx上面有个属性:privatestringsql;publicsetsql{setsql=value;}我把第一个控件拉到WEB页里可以正常引用.我再把第二个控件拉到第一个控件.然后在第一控件CS里给第二个控件的setsq赋值时.提示不能找到menulist,就是第二个控件的ID号请问怎么给这个setsql赋值啊.谢谢!
解决方案
解决方案二:
控件都找不到,怎么赋值?贴menu.ascx出来看看
解决方案三:
这里是menu.ascx代码,在WEB页得了classid生成sql想把sql再传给它引用的第二个控件publicpartialclassControl_MainMenu:System.Web.UI.UserControl{privateintClassid;publicstringSetClassid{set{Classid=Convert.ToInt32(value);}}protectedvoidPage_Load(objectsender,EventArgse){if(!IsPostBack){stringsql;sql="select*fromMLDG_Classwherebelong="+Classid+"orderbyOrderby";//Wap}}}
解决方案四:
这是menulist.ascx的代码,想通过第一个控代动态的给第二个控件赋setsql值,可我把第二个控件拉到第一个控件后,还是提示没有引用第二个控件.查了一些资料,好像是要委托,请问怎么委托啊publicpartialclassControl_MainMenuList:System.Web.UI.UserControl{privatestringsql;publicstringSetsql{set{sql=value;}get{returnsql;}}protectedvoidPage_Load(objectsender,EventArgse){if(IsPostBack){Bind(sql);}}privatevoidBind(stringsql){Dbdbs=newDb();dbs.Conn("Dbstr");SqlDataReaderMydr=dbs.RunProcGetReader(sql);DataList1.DataSource=Mydr;DataList1.DataBind();Mydr.Close();Mydr.Dispose();}}
解决方案五:
如果你使用的是VS2005.应该就是你开始的做法!不需要使用委托!如果你在一个控件的方法中要调用另外一个控件的方法需要使用委托.如果是VS2003,可能需要在第一个控件中的.ascx(不是.ascx.cs)中声明第二个控件的类!