小弟正在弄毕业设计C#.net 的学生信息管理系统(b/s)目的是方便教师输入学生成绩,全部输入之后,直接点一个确定按钮就保存全部数据.
现在的问题是:
如何把文本框嵌入到DataGrid里的指定一列中?(webform)例如:DataGrid 有  [学号,姓名,性别,科目,成绩] 几个列.
把文本框嵌入到成绩列,录入之后保存成绩

解决方案 »

  1.   

    添加一个模板列,然后切换到HTML代码编辑,更改ItemTemplate的样式,比如下面:<asp:TemplateColumn HeaderText="排序指数">
      <HeaderStyle Width="60px"></HeaderStyle>
         <ItemTemplate>
            <asp:TextBox id="tb" runat="server" Width="40px">
    <%# DataBinder.Eval(Container, "DataItem.grpID")</asp:TextBox>
         </ItemTemplate>
    </asp:TemplateColumn>
      

  2.   

    右键点击DATAGRID,选择添加模版列,然后进入修改模板列,直接拖一个文本框上去
    就可以了
      

  3.   

    楼上都正解。 不过楼上的方法更好。 直观明了。 右键点击DATAGRID,选择添加模版列,然后进入修改模板列,直接拖一个文本框上去
    就可以了
      

  4.   


    <asp:TemplateColumn HeaderText="成绩">
        <ItemTemplate>
    <asp:textbox id="cj" runat="server" Width="50px"></asp:textbox>
       </ItemTemplate>
    </asp:TemplateColumn>
      

  5.   

    哎,,,郁闷啊。公司用的是DotNet2003
      

  6.   

    datagrid上面右键,属性编辑,选择添加模版列,然后编辑模板列,直接拖一个文本框上去就OK 了
      

  7.   

    你需要每一列都用模板列,把数据绑定在模板列里面也写上,如下
    <asp:TemplateColumn>
    <HeaderTemplate>
    <asp:LinkButton id="lbtnMoveType" runat="server" CommandName="Sort" CommandArgument="factoryId">成绩</asp:LinkButton>
    </HeaderTemplate>
    <ItemTemplate>
    <asp:Textbox id="lbtnDgMoveType" runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.列名") %>'>
    </asp:Textbox>
    </ItemTemplate>
    </asp:TemplateColumn>
      

  8.   

    在属性里 添加一个 模板列 
    然后在datagrid上点右键编辑相应的模板列 放控件进去就可以了
      

  9.   

    在Windows应用程序中:
    1、添加一个TextBox 名为txtMove
    2、获得当前单元格DataGrid.CurrentCell 为cell
    3、获取当前单元格的Bounds: Rectangle rect=DataGrid.GetCellBounds(cell);
    4、txtMove.Size=rect.Size;
       txtMove.Left=DataGrid.Left+rect.Left;
       txtMove.Top=DataGrid.Top+rect.Top;
       txtMove.Text=DataGrid[cell];
       txtMove.Focus();
    注意:以上代码写到DataGrid控件的CurrentCellChanged事件中去,包您满意!
      

  10.   

    使用我这个方法还有一个好处就是你不用处理DataGird的输入,而是处理TextBox的输入,这样你可以很方便的处理数据验证和数据保存逻辑。
    有一个不足就是TextBox获取焦点后会立刻把焦点转到DataGrid控件上去,你想法在CurrentCellChanged事件之后再让txtMove.FOcus()就行了