gridview的RowEditing事件当中.其他的对象未实例化?

blacksoul 2007-09-05 03:53:58
页面当中有gridview以及detailsview,还有一个button

detailsview当中有模板列tbUsername

由于实现要初始化模板列当中的tbUsername的值,想到类是引用类型的.于是有了下面的方法.
button有一个点击事件.
执行
TextBox tb = (TextBox)dvLiveChannel.FindControl("tbUsername");
tb.Text = Session["userID"].ToString();
这里这个是正常执行的.

在gridview的RowEditing事件当中同样的代码.
TextBox tb = (TextBox)dvLiveChannel.FindControl("tbUsername");
tb.Text = Session["userID"].ToString();
这里的tb一直处于null的状态..各位谁遇见过?~找了半天原因一直不明白..
...全文
192 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
tangserver 2007-09-05
  • 打赏
  • 举报
回复
好像是这个吧Parent
你这样写TextBox tb = (TextBox)e.row.parent.FindControl("dvLiveChannel").FindControl("tbUsername");
tb.Text = Session["userID"].ToString();

如果还没找到就多加个.parent,这样总会找到的
tangserver 2007-09-05
  • 打赏
  • 举报
回复
独立开的你在gridview的事件里就要去跟Gridview同级的地方找,用e.row.p开头的我不记得了,你点出来就看到了,如果一个.p.不够你就再多点一个,这样不会有什么问题的了
blacksoul 2007-09-05
  • 打赏
  • 举报
回复
Gridview和dvLiveChannel是独立开的..

//下面这样是不能赋值的.
(TextBox)dvLiveChannel.FindControl("tbUsername").Text = Session["userID"].ToString();
tangserver 2007-09-05
  • 打赏
  • 举报
回复
你先要在Gridview里找到dvLiveChannel才行
tangserver 2007-09-05
  • 打赏
  • 举报
回复
因为你是在gridview里,所以你要再深一层去FindControl
egyqy 2007-09-05
  • 打赏
  • 举报
回复
直接这样啊
(TextBox)dvLiveChannel.FindControl("tbUsername").Text = Session["userID"].ToString();
zhchg6666 2007-09-05
  • 打赏
  • 举报
回复
up

62,074

社区成员

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

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

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

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