订单的物料明细从表
字段包括:物料编码、单价、数量权限处理是这样的:
有些用户允许修改任何字段;
有些用户允许修改物料编码字段;
有些用户允许修改单价字段;
有些用户允许修改数量字段;如何实现在DataGrid1_EditCommand中将某列的TextBox设置为不可用状态?
好像不允许使用如下方法访问控件:
TextBox tb=(TextBox)(e.Item.Cells[2].Controls[1])
或者TextBox tb=(TextBox)(e.Item.FindControl("price"))

解决方案 »

  1.   

    有个
    ItemDataBound事件,在里面写
    TextBox tb=(TextBox)(e.Item.FindControl("price"));
    tb.Enable=false;
      

  2.   


    或者使用魔版列,假设EditItemTemplate里的textbox控件id=“123”,在编辑事件处理里写
    TextBox tb = ( TextBox )e.Item.FindControl("123");
    tb.Enable =false;
      

  3.   

    一种设置成只读,一种用Label显示。
      

  4.   

    你直接在html设计器里设置ReadOnly=true
      

  5.   

    DataGrid得属性生成器中找到该列,然后将只读,打上勾就可以了。
      

  6.   

    如果是用VS做的,那只要在属性生成器里面点击那一列,然后勾选只读单选框就行了.如是不是用VS做的,那就写代码readonly=true了.
      

  7.   

    我强烈抗议给我提供错误答案的同志!!!
    不能不懂装懂!我给分的原则是:
    1、解决了问题。
    2、为我开拓了思路。
    否则给0分!欢迎有相关经验的回答问题!很多同志提供readonly=true的方法,
    我怎么没有找到地方填写readonly=true?(我用的是c#. asp)asp:TemplateColumn ?
    asp:TemplateColumn HeaderText="Price" ?
      

  8.   

    你可以这样:
    在编辑模版列时,除了绑定text外,再把readonly或enabled绑定一下,绑定一个用户是否有权限的值,如果你能判断用户是否对该列有权限这应该不是问题,只是在取数据时增加一列而已,这是我想到的最简单的方法,还省事,呵呵。
      

  9.   

    模版列里的控件可都是有readonly和enabled属性的,给分吧。
      

  10.   

    既然你要对不同的用户限制不同的textbox的状态,那你可以在oneditcommand里面写一些代码,首先用findcontrol来找到需要设定的Textbox,然后设置相应的属性,比如textbox.enable
    和readonly属性
      

  11.   

    晕,TextBox 没有readonly属性?