日期:2014-05-19  浏览次数:20468 次

动态加载自定义控件
//想实现当贴子内容为文本时,就显现文本,为投票类的帖子时就显示一个自定义控件...,代码就如下写,
//但是自定义控件没有显示来,我在单独一个页面调用自定义控件Ballot是可以显示的,请高手帮忙!
//(new   OA.DA.Bbs()).GetBallot(LabBbsID.Text)   为DataTable类型     在Ballot里面实现了数据邦定

if(bbs.IsPoll   ==   "0 ")
{//普通文本帖子
cell.Text   +=   bbs.Content+ " <br> ";
}
else   if(bbs.IsPoll   ==   "1 ")
{//   1为单选帖子
cell.Text   +=   " <BbsBallot:BbsBallot   runat=\ "server\ "   id=\ "Ballot\ "> </BbsBallot:BbsBallot> ";
this.Ballot.Source   =   (new   OA.DA.Bbs()).GetBallot(LabBbsID.Text);
}
else
{//   2为多选帖子

}

------解决方案--------------------
把treeview换成你的控件就可以了 Control c1 = ParseControl(@ " <%@Register TagPrefix= " "cc1 " " Namespace= " "Microsoft.Web.UI.WebControls " " Assembly= " "IeWebControls " " %> <cc1:TreeView ID = " "t1 " " runat= " "server " "> </cc1:TreeView> "); Microsoft.Web.UI.WebControls.TreeView tv = (Microsoft.Web.UI.WebControls.TreeView)c1.Controls[0]; Microsoft.Web.UI.WebControls.TreeNode node = new Microsoft.Web.UI.WebControls.TreeNode(); node.Text = "Root "; tv.Nodes.Add(node); this.PlaceHolder1.Controls.Add(c1);
------解决方案--------------------
只有慢慢调试 ...体力活
------解决方案--------------------
我这里不回答楼主问题,只是提个醒:

基本上,我测试某控件首先是在页面上放至少2个实例以上,然后测试一个控件实例是否破坏另外一个空间的状态。并且要放已经成功开发并且交互特别复杂的控件在同一个页面上来测试新控件是否破坏其它控件状态。

如果你没有从一开始就从这个测试来明确最起码的控件标准要求,最好重新最简单的自定义控件开始做起,要认识到自己尚未摸控件开发的门径。