我们在DataGrid中可以使用编辑列,但是点击某行的编辑按钮时,整行的所有字段都变成文本框处于可输入状态,大家又没有办法当点击编辑按钮时,只让该行的一个或几个字段成为可输入状态,把其它几个字段设置为不可用。我尝试着在编辑按钮的事件中写入一下代码:e.Item.Cell[1].Enabled=false;但是没有用

解决方案 »

  1.   

    直接在属性生成器中将该列设为只读就可以了啊。
    有一个checkbox选项的啊。
      

  2.   

    <asp:BoundColumn DataField="UserID" ReadOnly="True" HeaderText="UserID"></asp:BoundColumn>
    如上设置ReadOnly="True"
      

  3.   

    //****用模版设置即可
    <asp:DataGrid ID="DGRid" Runat="server" AutoGenerateColumns="False">
    <Columns>
    <asp:TemplateColumn HeaderText="编号">
    <ItemTemplate>
    <asp:Label ID=lblID Runat=server Text='<%#DataBinder.Eval(Container.DataItem,"ID")%>'>
    </asp:Label>
    </ItemTemplate>
    <EditItemTemplate>
    <asp:Label ID="lblEditID" Runat=server Text='<%#DataBinder.Eval(Container.DataItem,"ID")%>'>
    </asp:Label>
    </EditItemTemplate>
    </asp:TemplateColumn>
    <asp:TemplateColumn HeaderText="姓名">
    <ItemTemplate>
    <asp:Label ID=lblName Runat=server Text='<%#DataBinder.Eval(Container.DataItem,"Name")%>'>
    </asp:Label>
    </ItemTemplate>
    <EditItemTemplate>
    <asp:TextBox ID=txtName Runat=server Text='<%#DataBinder.Eval(Contaoner.DataItem,"Name")%>'>
    </asp:TextBox>
    </EditItemTemplate>
    </asp:TemplateColumn>
    <asp:EditCommandColumn ButtonType="LinkButton" UpdateText="&lt;img src=images/update.gif  border=0 align=absmiddle onclick=&quot;javascript:if(confirm('请确认是否更新!')==false) return false;&quot; alt='更新' &gt;"
    CancelText="&lt;img src=images/cance.gif border=0 align=absmiddle alt='取消'&gt;" EditText="&lt;img src=images/edit.gif border=0 align=absmiddle alt='编辑'&gt;"></asp:EditCommandColumn>
    </Columns>
    </asp:DataGrid>