GridView内有ItemTemplate时的问题...........................

vsstudio05 2008-04-17 02:52:29
Gridview内有<asp:BoundField的时候,后台取值e.Row.Cells[0].Text能取道,但是内有ItemTemplate的时候,后台用e.Row.Cells[0].Text取值取不到,如何解决?

aspx页面:<asp:GridView ID="Grid_Event" runat="server" ....>
<Columns>
<asp:TemplateField HeaderText="状态">
<ItemTemplate>
<%# BuildDTV(Eval("ID").ToString())%>
</ItemTemplate>
<ItemStyle HorizontalAlign="Left" Width="14%" />
</asp:TemplateField>
.........
cs页面:void Grid_Event_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType==DataControlRowType.DataRow)
{
string tx = e.Row.Cells[0].Text;//此时获取到的值为空
}
}

public string BuildDTV(string id)
{......}//返回一个string类型
...全文
143 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
vsstudio05 2008-04-17
  • 打赏
  • 举报
回复
已经解决..........
vsstudio05 2008-04-17
  • 打赏
  • 举报
回复
对于模板列 估计要用FINDECONTROL的方法找控件。在找控件的属性来取值
-----------------------------
放个服务器控件赋值给Text,然后FindeControl估计因该是可以的吧。那如果不放服务器控件的话如何做呢?
vsstudio05 2008-04-17
  • 打赏
  • 举报
回复
1.把 if (e.Row.RowType==DataControlRowType.DataRow)
去掉
-------------------
试过了,没有值!


2.方法体贴出来看下
--------------------
public string BuildDTV(string id)
{......}//返回一个string类型
是些逻辑处理函数太长,它是返回一个String类型。

3. if (e.Row.RowType == DataControlRowType.DataRow)
{
TableCell obj = e.Row.Cells[0];
string tx = obj.Text ;
//....
}
-----------------------------
与装箱拆箱没有关系...

我觉得Grid_Event_RowDataBound是绑定时候触发的,它之所以没有值是因为没有处理temTemplate的函数,所以没有值,问题是如何在处理temTemplate的函数后触发呢???
一品梅 2008-04-17
  • 打赏
  • 举报
回复
要明白模板列之所以叫模板列的原因
hy_lihuan 2008-04-17
  • 打赏
  • 举报
回复
怎么感觉是可以的啊;真的不行么那你就把值放在Label里面显示把
e.Row.Cells[0].FindControl("控件名称")这样来查找吧
jiezi316 2008-04-17
  • 打赏
  • 举报
回复
对于模板列 估计要用FINDECONTROL的方法找控件。在找控件的属性来取值
apollolb2005 2008-04-17
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 apollolb2005 的回复:]
if (e.Row.RowType == DataControlRowType.DataRow)
{
TableCell obj = e.Row.Cells[0];
string tx = obj.Text ;
//....
}
[/Quote]
这个不行的话,在ItemTemplate放个label,把值绑定到label里

if (e.Row.RowType == DataControlRowType.DataRow)
{
Label obj = (Label)e.Row.Cells[0].FindControl("label1");
string tx = obj.Text ;
//....
}
一品梅 2008-04-17
  • 打赏
  • 举报
回复
findcontrol
apollolb2005 2008-04-17
  • 打赏
  • 举报
回复
if (e.Row.RowType == DataControlRowType.DataRow)
{
TableCell obj = e.Row.Cells[0];
string tx = obj.Text ;
//....
}
MetaDunDun 2008-04-17
  • 打赏
  • 举报
回复
方法体贴出来看下
叶子 2008-04-17
  • 打赏
  • 举报
回复
把 if (e.Row.RowType==DataControlRowType.DataRow)
去掉
MetaDunDun 2008-04-17
  • 打赏
  • 举报
回复
BuildDTV()方法干什么的?

62,025

社区成员

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

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

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

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