没有自动生成,但用DataGrid本身的width属性只能控制点击“编辑”之前的宽度

解决方案 »

  1.   

    <asp:TemplateColumn HeaderText="编号" SortExpression="FoodID">
        <ItemTemplate>
    <asp:Label Text=<%# DataBinder.Eval(Container.DataItem,"FoodID")%> Runat=server Width=80 ID="FoodID"></asp:Label>
        </ItemTemplate>
       <EditItemTemplate>
             <asp:Label Text=<%# DataBinder.Eval(Container.DataItem,"FoodID")%> Runat=server Width=80 ID="IDEdit"></asp:Label>
       </EditItemTemplate>
    </asp:TemplateColumn>这样控制就可以了,假如你是用模板列的话。
    <EditItemTemplate></EditItemTemplate>之间就是编辑的时候显示的,里面可以设Widthd的
      

  2.   

    我试了楼上的方法,但是点“编辑”后该列并没变成可编辑的文本框,那如何修改呢?//说明没有增加EditCommand,在DataGrid的事件框内双击EditCommand即可
    private void DataGrid1_EditCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
    {
    //增加如下代码
    DataGrid1.EditItemIndex = e.Item.ItemIndex;
    BindGrid();
    }
      

  3.   

    加了呀,我只是把两个Text属性改成了“123”,点“编辑”之后除了模板列,其它都能编辑
      

  4.   

    <EditItemTemplate>
             <asp:Text Text=<%# DataBinder.Eval(Container.DataItem,"FoodID")%>  Runat=server Width=80 ID="IDEdit"></asp:Text>
       </EditItemTemplate>
      

  5.   

    问题解决了,但是在<EditItemTemplate>标签内应该使用asp:TextBox才行