datagrid里能不能插入textbox?
数据表中有个SL(数量)字段,我想在datagrid里显示的数据里,每条记录前面都有个文本输入框,输入要修改的数字,提交后能直接修改数据表中SL(数量)这个字段的值。
比如:我现在通过datagrid显示了2条记录:
序号 物品名称 数量
1 牙刷 8
2 毛巾 12
现在我想在“数量”后面增加一个输入框“领用数量”,能直接输入数字,如下所示:
序号 物品名称 数量 领用数量
1 牙刷 8 4
2 毛巾 12 3
这里“领用数量”是手动输入的,输入完提交后,牙膏由8变为4,毛巾由12变为9,即可以直接修改数据库中的数据。
请问这应该怎么实现?
数据表中有个SL(数量)字段,我想在datagrid里显示的数据里,每条记录前面都有个文本输入框,输入要修改的数字,提交后能直接修改数据表中SL(数量)这个字段的值。
比如:我现在通过datagrid显示了2条记录:
序号 物品名称 数量
1 牙刷 8
2 毛巾 12
现在我想在“数量”后面增加一个输入框“领用数量”,能直接输入数字,如下所示:
序号 物品名称 数量 领用数量
1 牙刷 8 4
2 毛巾 12 3
这里“领用数量”是手动输入的,输入完提交后,牙膏由8变为4,毛巾由12变为9,即可以直接修改数据库中的数据。
请问这应该怎么实现?
解决方案 »
- <% %>在.aspx中不执行
- 用户记住地址 直接输入地址访问越级访问。
- 救命~~
- VS2008(.NET3.5)开发的网站能架设在支持.NET2.0的空间上么
- 在VWD2005中如何编译并引用VS2003的C#项目,谢谢。
- 咨询treeview 的一个问题
- 【提问100分】我的控件去哪儿了?
- 我的这种方法是否可取,大家给指点下!
- TextBox输入汉字返回的却是?之类的乱码!怎么回事?
- .NET 如何发送json格式请求到一个带有身份验证信息的http连接地址
- 为什么使用abs函数时,提示"编译器错误信息: BC30451: 名称“abs”未声明。"
- 为什么在代码混合的ASPX页面中,这时if(!IsPostBack)语句好象不起作用了?
<asp:TemplateColumn> <HeaderStyle Width="14px"></HeaderStyle> <ItemTemplate>
<asp:textbox id="ccsl" runat="server" Width="60px"></asp:textbox> </ItemTemplate>
</asp:TemplateColumn>在CS文件里没法认到ccsl.Text。
不知道那里错了
datagrid中的控件是直接不能使用的需要使用FindControl()方法才能找到TextBox ccsl =(TextBox)e.Item.Cells[0].FindControls("ccsl");
ccsl.Text......
把TextBox ccsl =(TextBox)e.Item.Cells[0].FindControls("ccsl");放到
private void CC_button_Click(object sender, System.EventArgs e)
{
.....
}
后报如下错误:
c:\inetpub\wwwroot\wygl\ckgl\ckgl.aspx.cs(242): “System.EventArgs”并不包含对“Item”的定义
这里e.Item中的e是什么?
private void CC_button_Click(object sender, System.EventArgs e)
{
......
}
语句里,这里的e要改成什么?我把e改成DataGrid控件的名称DataGrid1,还是不行。
<asp:BoundColumn DataField ="物品名称" HeaderText ="物品名称" />
asp:BoundColumn DataField ="数量" HeaderText ="数量" /><asp:TemplateColumn HeaderText="领用数量">
<ItemTemplate>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox Runat =server text='' id="ccsl" NAME="ccsl"/>
</EditItemTemplate>
</asp:TemplateColumn><asp:EditCommandColumn ButtonType="LinkButton" UpdateText="更新" CancelText="取消" EditText="编辑">
</asp:EditCommandColumn></Columns>
</asp:datagrid>
代码
private void DataGrid1_UpdateCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
int num = Convert.ToInt32(e.Item.Cells[2].Text.Trim());
TextBox txtCcsl =(TextBox)e.Item.Cells[2].FindControls("ccsl");
int ccsl=Convert.ToInt32(txtCcsl.Text.Trim());
num+ = ccsl;
....更新到数据库
}
(TextBox)DataGrid.Controls[0].Controls[1+DataGrid.Items.Count].FindControl("ccsl");这样访问确实可以访问,但如果有多条记录的时候,必须每条记录的“领用数量”都要输入才行,如果有一条没输的话就不行了。
注:我是用foreach(DataGridItem id in this.DataGrid1.Items){ ..... }做循环的。