如何实现在DataGrid的模板列里动态生成子控件?

unused 2005-06-06 03:40:38
我现在在试着做一个简单的.net论坛,遇到这样一个问题,请各位帽子上戴着星星的兄弟们帮忙看看^o^
========================================================================================
功能:

具体是这样的,比如我发了一张帖子,那下一回我进到这个帖子里,就会在标题后面多出一个小图标或者是“编辑”之类的字样,而别的用户就不会显示;同样我的回复也是如此。也就是能判断用户的身份然后给予对相应记录的编辑权限。

条件:

我现在是用的Session变量来存储用户标识号,准备根据这个来判断并动态生成。我的DataGrid里显示帖子用的是模板列,里边写了一个ImageButton

问题:

1.我要在什么事件里来编写代码?(ItemCreated?DataBinding?还是其它的什么?)
2.我如何能改变子控件ImageButton的属性,让它显示或不显示?

请高手们指点,小生这厢有礼了!
...全文
100 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
TCat 2005-06-10
  • 打赏
  • 举报
回复
截取cuike519自定义控件的些代码
public override void DataBind(){


if (this.PagingMode == PagingMode.Cached) {
this.ClearCache();
this.GetAllData();
}
else {
this.GetPageData();
}

if(this.IsShowCheckAll && itest==1){
itest++;
TemplateColumn tcCheckBox = new TemplateColumn();
//tcCheckBox.HeaderTemplate = new DataGridTemplate(ListItemType.Header,"选择");
tcCheckBox.ItemTemplate = new DataGridTemplate(ListItemType.Item,"选择");
this.Columns.AddAt(0,tcCheckBox);
}

base.DataBind();
}

上面是帮定,下面是增加模板代码
using System;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace MY.Web.UI
{
public class DataGridTemplate : ITemplate {

ListItemType templateType;
string columnName;

public DataGridTemplate(ListItemType type, string colname) {
templateType = type;
columnName = colname;
}

你可以在这个地方做写文章的,权限什么这类的
public void InstantiateIn(System.Web.UI.Control container) {
CheckBox chk = new CheckBox();
switch(templateType) {
case ListItemType.Header:{
chk.ID = "chkAll";
chk.Text = "全选";
chk.Attributes["OnClick"] = "javascript:return SelectAll(this.checked,this.id)";
break;
}
case ListItemType.Item:{
chk.ID = "chkOne";
chk.Attributes.Add("onclick","javascript:return SelectAll(this.checked,this.id)");
break;
}
case ListItemType.AlternatingItem:{
chk.ID = "chkOne";
chk.Attributes.Add("onclick","javascript:return SelectAll(this.checked,this.id)");
break;
}
case ListItemType.EditItem:{
break;
}
case ListItemType.Footer:{
break;
}
}

container.Controls.Add(chk);
}

}
}

unused 2005-06-10
  • 打赏
  • 举报
回复
我已经解决了,不过还是谢谢你:)
unused 2005-06-09
  • 打赏
  • 举报
回复
难道没有人遇到过类似的情形么?

62,046

社区成员

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

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

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

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