前台显示:
<asp:TemplateColumn HeaderText="对比关系">
<ItemTemplate>
<asp:Label id="Label1" Runat="server"><%#DataBinder.Eval(Container.DataItem,"bl")%>:<%#DataBinder.Eval(Container.DataItem,"yc_bl")%></asp:Label>
</ItemTemplate>
</asp:TemplateColumn>后台代码:
//Response.Write(DG1.Items[i].Cells[3].Controls[0].ToString()+"");
blstr += ((Label)DG1.Items[i].Cells[3].FindControl("Label1")).Text.ToString()+";";
label的值为空。说明:我不是在数据绑定时取的,而是在一个按钮的触发事件里遍历了datagrid的每一行。前面三列都是BoundColumn取出来没有问题,唯独这列取不出数据来,郁闷请求帮助

解决方案 »

  1.   

    我刚才在ItemDataBind里面试了一下也取不到数据。这是怎么回事?难道我的写法有误?
      

  2.   


    ((Label)DG1.Items[i].FindControl("Label1")).Text+";"; 
      

  3.   

    <asp:Label id="Label1" Runat="server"> <%#DataBinder.Eval(Container.DataItem,"bl")%>: <%#DataBinder.Eval(Container.DataItem,"yc_bl")%> </asp:Label> 没看到有text属性啊。Text没赋值当然是空的了。
      

  4.   


    protected void DG1_UpdateCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
    {
    string id = this.dgr.DataKeys[e.Item.ItemIndex].ToString();
    string strServerName = ((Label)(e.Item.Cells[3].Controls[0])).Text;
    this.dgr.EditItemIndex = -1;
    }
      

  5.   

    解决了,前台显示写的不正确,改成了这样就可以了
    <ItemTemplate>
    <asp:Label id="Label1" Runat="server" Text='<%#(DataBinder.Eval(Container.DataItem,"bl")).ToString()+":"+ (DataBinder.Eval(Container.DataItem,"yc_bl")).ToString()%>'></asp:Label>
    </ItemTemplate>