自定义控件myGrid(继承自DataGrid),如何将这个DataGrid用Panel包围?

quou2002 2004-07-19 03:58:47
因为有多个页面要用到这种DataGrid,现将其单独制作成一个自定义控件(继承自DataGrid)。
里面设置好了一些DataGrid的样式,和其他一些功能:分页,排序等。

最后,想用一个Panel将其包围(纯粹为了外观),却不知道如何搞定了。
在CreateChildControls()里动态new了一个panel,想用panel.controls.add(),却不知道add里应该是什么??
要是将整个自定义控件继承自webcontrol,再new一个datagrid,用panel.controls.add(datagrid),可以成功显示。但是这样各个页面中不好操作DataGrid中的字段了(并不是自动创建列的)。

恳请各位兄弟帮忙解决!
...全文
125 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
quou2002 2004-07-20
  • 打赏
  • 举报
回复
如果要是服务端的控件怎么办呢?
你说的方法我正在试,虽然很繁琐。因为还有很多样式属性。。。
再次感谢!

还请朋友们把这个问题在深入下去,我总觉得还应该有更好的办法的。
triout 2004-07-19
  • 打赏
  • 举报
回复
如果你的table仅仅是输出而不需要SERVER端进行额外的控制,那么:

protected override void Render(System.Web.UI.HtmlTextWriter writer)
{
writer.Write("<table><tr><td background='背景图片URL'>");
writer.Write(表头文本);
writer.Write("</td></tr><tr><td>");
this.RenderControl(writer);
writer.Write("</td></tr></table>");
}
quou2002 2004-07-19
  • 打赏
  • 举报
回复
To:triout 兄
那么如果我这个Panel里有一个2行1列的table(第一行主要是作为表头的标题栏,用背景图像填充,还有一个Label通过编程控制显示标题;第二行才是我真正用到的DataGrid)。要是用重载Render的方法,不太好实现吧(我想应该很繁琐)。。。
不过,我还是试试先。在此谢过triout。。。
triout 2004-07-19
  • 打赏
  • 举报
回复
重写OnRender函数:

protected override void Render(System.Web.UI.HtmlTextWriter writer)
{
writer.Write("div");
base.Render (writer);
writer.Write("</div");
}

或:

protected override void Render(System.Web.UI.HtmlTextWriter writer)
{
writer.Write("div");
this.RenderControl(writer);
writer.Write("</div");
}

62,046

社区成员

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

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

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

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