小弟正在弄毕业设计C#.net 的学生信息管理系统(b/s)目的是方便教师输入学生成绩,全部输入之后,直接点一个确定按钮就保存全部数据.
现在的问题是:
如何把文本框嵌入到DataGrid里的指定一列中?(webform)例如:DataGrid 有 [学号,姓名,性别,科目,成绩] 几个列.
把文本框嵌入到成绩列,录入之后保存成绩
现在的问题是:
如何把文本框嵌入到DataGrid里的指定一列中?(webform)例如:DataGrid 有 [学号,姓名,性别,科目,成绩] 几个列.
把文本框嵌入到成绩列,录入之后保存成绩
<HeaderStyle Width="60px"></HeaderStyle>
<ItemTemplate>
<asp:TextBox id="tb" runat="server" Width="40px">
<%# DataBinder.Eval(Container, "DataItem.grpID")</asp:TextBox>
</ItemTemplate>
</asp:TemplateColumn>
就可以了
就可以了
<asp:TemplateColumn HeaderText="成绩">
<ItemTemplate>
<asp:textbox id="cj" runat="server" Width="50px"></asp:textbox>
</ItemTemplate>
</asp:TemplateColumn>
<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>
然后在datagrid上点右键编辑相应的模板列 放控件进去就可以了
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事件中去,包您满意!
有一个不足就是TextBox获取焦点后会立刻把焦点转到DataGrid控件上去,你想法在CurrentCellChanged事件之后再让txtMove.FOcus()就行了