**如何动态创建模版列,加载的为用户控件(Web User Control)

bzszp 2006-11-20 08:48:51
我使用孟子E章的方法,创建一般控件的模版列没有问题,但是创建自己的用户控件的模版列显示不出来,不知道什么原因。
...全文
187 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
bzszp 2006-11-20
  • 打赏
  • 举报
回复
好了,问题解决了
我从TemplateControl继承一下就可以了
/// <summary>
/// 动态创建模版列的类
/// </summary>
public class GridViewTemplate :TemplateControl,ITemplate
{
private DataControlRowType templateType;
private string columnName;
private string ucID;

public GridViewTemplate(DataControlRowType type, string colname,string ucId)
{
templateType = type;
columnName = colname;
ucID = ucId;
}

public void InstantiateIn(System.Web.UI.Control container)
{
switch (templateType)
{
case DataControlRowType.Header:
Literal lc = new Literal();
lc.Text = columnName;
container.Controls.Add(lc);
break;
case DataControlRowType.DataRow:
Control tmMuti = LoadControl("WJDCPages/UControls/WUC_TM_MUTI.ascx");
tmMuti.ID = ucID;
container.Controls.Add(tmMuti);
break;
default:
break;
}
}
}
这样没有问题吧?
bzszp 2006-11-20
  • 打赏
  • 举报
回复
这样的话就不能写在这个类里面了,在这个类里面不能调用loadcontrol方法

tmMuti.ID = ucID; --就这个id
孟子E章 2006-11-20
  • 打赏
  • 举报
回复
什么ID?
bzszp 2006-11-20
  • 打赏
  • 举报
回复
而且我要创建多个同样的模版列,
bzszp 2006-11-20
  • 打赏
  • 举报
回复
我用过这个方式,
我如果是用这种方式的话,id如何取出来啊?
孟子E章 2006-11-20
  • 打赏
  • 举报
回复
// 加载用户控件并将其添加到页面中
Control control = LoadControl("~/MyUserControl.ascx");
container.Controls.Add(control );
孟子E章 2006-11-20
  • 打赏
  • 举报
回复
LoadControl
bzszp 2006-11-20
  • 打赏
  • 举报
回复
代码如下:
/// <summary>
/// 动态创建模版列的类
/// </summary>
public class GridViewTemplate : ITemplate
{
private DataControlRowType templateType;
private string columnName;
private string ucID;

public GridViewTemplate(DataControlRowType type, string colname,string ucId)
{
templateType = type;
columnName = colname;
ucID = ucId;
}

public void InstantiateIn(System.Web.UI.Control container)
{
switch (templateType)
{
case DataControlRowType.Header:
Literal lc = new Literal();
lc.Text = columnName;
container.Controls.Add(lc);
break;
case DataControlRowType.DataRow:
//WUC_TM_MUTI tmMuti = new WUC_TM_MUTI();//用我定义的用户控件就有问题,显示不出来
TextBox tmMuti = new TextBox(); //用这个没有问题
//tmMuti.RenderControl(
tmMuti.ID = ucID;
container.Controls.Add(tmMuti);

break;
default:
break;
}
}
}

62,243

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧