<asp:TemplateColumn HeaderText="权限">
<ItemStyle Width="100px"></ItemStyle>
<ItemTemplate>
<asp:Label id="lbquanxian" runat="server">
<%# DataBinder.Eval(Container, "DataItem.Admin_OP")%>
</asp:Label>
</ItemTemplate>
</asp:TemplateColumn>这里的Admin_OP里面的值是1、2,1代表普通操作员,2代表管理员。
private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{ Label _l = ((Label)e.Item.FindControl("lbquanxian"));
_l.Text = "aaa"; //测试
}总出现错误,未将对象引用设置到对象的实例。
然后断点调试,发现_l为未定义。就是没有找到这个控件。该怎么弄啊,以前没碰到过啊~~

解决方案 »

  1.   

    http://dotnet.aspx.cc/ShowDetail.aspx?id=F73EF6AD-6878-4748-B963-5181252E5AED
      

  2.   

    private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
    {
    //加上判断当前项的类型的语句
    if(e.Item.ItemType==ListItemType.Item||e.Item.ItemType==ListItemType.AlternatingItem){ Label _l = e.Item.FindControl("lbquanxian")) as Label;
              if(_l!=null)
    _l.Text = "aaa"; //测试
    }
    }----------------------------------------
    欢迎使用AspNetPager免费分页控件:http://www.webdiyer.com
      

  3.   

    To 孟子用你的方法可以修改么?就是EditItemTemplate?
      

  4.   

    To 孟子修改的时候,他默认是TextBox,我想换成DropDownList,是BoundColumn该怎么弄?
      

  5.   

    要判断不然页眉也处理了。
    if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType==ListItemType.AlternatingItem){}
    修改的时候,他默认是TextBox,我想换成DropDownList,是BoundColumn该怎么弄?
    在模板列的ItemTemplateColumn里加TextBox在EditTemplateColumn列里加ListBox
      

  6.   

    如 webdiyer(陕北吴旗娃) 所说。