DataGrid中通过CHECKBOX来修改库里某个字段的值
2009-07-23 09:35
204 查看
前台页如下:
其实主要的思路是,首先把要修改的那个字段绑定为不可见的,然后在后台的
private void DataGrid1_ItemCreated(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
if(e.Item.ItemType==ListItemType.Item||e.Item.ItemType==ListItemType.AlternatingItem||e.Item.ItemType==ListItemType.EditItem)
{
Control myControl =e.Item.Cells[7].FindControl("CheckBox2");
((LinkButton)e.Item.Cells[4].Controls[0]).Attributes.Add("onclick","return confirm('确定要删除?');");
((LinkButton)e.Item.Cells[6].Controls[0]).Attributes.Add("onclick","return confirm('确定要删除?');");
(myControl as CheckBox).Attributes.Add("onclick","if(!confirm('确定要修改不?') ) return false;");
if(e.Item.Cells[8].Text=="0")
{
if(myControl!=null)
{
(myControl as CheckBox).Checked=true;
}
}
}
}
以上是绑定的时候与库里的字段一致,如果手选CHECKBOX来修改的时候
<ItemTemplate>
<asp:CheckBox id="CheckBox2" runat="server" Text="是" AutoPostBack="True" OnCheckedChanged="TranChecked"></asp:CheckBox>
</ItemTemplate>
然后在后台重写一下TranChecked这个事件即可
具体代码如下:
protected void TranChecked(object sender, System.EventArgs e)
{
// sender为事件源,我们可以通过下面的方式获得DataGrid当前行
CheckBox cb = (CheckBox)sender;
DataGridItem item = cb.Parent.Parent as DataGridItem;
int id=int.Parse(item.Cells[5].Text);
if(cb.Checked)
{
string sql="update Users set isdelete=0 where id="+id;
Local.VoidSQL(sql);
}
else
{
string sql="update Users set isdelete=1 where id="+id;
Local.VoidSQL(sql);
}
// 第一个Parent得到的是item的cell;第二个Parent得到Item
// 下面就可以操作item的其他cells了
}
<%#DataBinder.Eval(Container.DataItem,"RealName") %><%# GetDepartment(DataBinder.Eval(Container.DataItem,"Department").ToString())%><%# GetJob(DataBinder.Eval(Container.DataItem,"Purview").ToString())%>
其实主要的思路是,首先把要修改的那个字段绑定为不可见的,然后在后台的
private void DataGrid1_ItemCreated(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
if(e.Item.ItemType==ListItemType.Item||e.Item.ItemType==ListItemType.AlternatingItem||e.Item.ItemType==ListItemType.EditItem)
{
Control myControl =e.Item.Cells[7].FindControl("CheckBox2");
((LinkButton)e.Item.Cells[4].Controls[0]).Attributes.Add("onclick","return confirm('确定要删除?');");
((LinkButton)e.Item.Cells[6].Controls[0]).Attributes.Add("onclick","return confirm('确定要删除?');");
(myControl as CheckBox).Attributes.Add("onclick","if(!confirm('确定要修改不?') ) return false;");
if(e.Item.Cells[8].Text=="0")
{
if(myControl!=null)
{
(myControl as CheckBox).Checked=true;
}
}
}
}
以上是绑定的时候与库里的字段一致,如果手选CHECKBOX来修改的时候
<ItemTemplate>
<asp:CheckBox id="CheckBox2" runat="server" Text="是" AutoPostBack="True" OnCheckedChanged="TranChecked"></asp:CheckBox>
</ItemTemplate>
然后在后台重写一下TranChecked这个事件即可
具体代码如下:
protected void TranChecked(object sender, System.EventArgs e)
{
// sender为事件源,我们可以通过下面的方式获得DataGrid当前行
CheckBox cb = (CheckBox)sender;
DataGridItem item = cb.Parent.Parent as DataGridItem;
int id=int.Parse(item.Cells[5].Text);
if(cb.Checked)
{
string sql="update Users set isdelete=0 where id="+id;
Local.VoidSQL(sql);
}
else
{
string sql="update Users set isdelete=1 where id="+id;
Local.VoidSQL(sql);
}
// 第一个Parent得到的是item的cell;第二个Parent得到Item
// 下面就可以操作item的其他cells了
}
<%#DataBinder.Eval(Container.DataItem,"RealName") %><%# GetDepartment(DataBinder.Eval(Container.DataItem,"Department").ToString())%><%# GetJob(DataBinder.Eval(Container.DataItem,"Purview").ToString())%>
相关文章推荐
- 通过游标实现对text字段的修改,修改其中某几个字符串(updatetext )
- 通过反射修改指定对象字段值的通用方法
- [原创]通过动态Sql语句,一次性彻底删除或者修改SBO的某个字段对应内容的信息
- ORACLE中通过SQL语句(alter table)来增加、删除、修改字段
- DATAGRID的应用(双向排序,包括checkbox控件,分页,修改,保存,取消)
- Flex 4通过重写DataGridColumn和CheckBox类给DataGrid添加选择列-CheckBoxColumn
- [原创]DATAGRID的应用(双向排序,包括checkbox控件,分页,修改,保存,取消)
- Dynamics CRM 2011 通过数据库修改实体字段的长度需要注意的地方
- 【转帖】如何通过 javascript 访问 GridView/DataGrid 选中 CheckBox 行各列的值
- Datagrid中添加的radiobutton不能通过后台代码修改
- 如何通过 javascript 访问 GridView/DataGrid 选中 CheckBox 行各列的值
- 通过反射修改类的某些字段
- java通过类的反射获取页面修改字段前后值以及字段名称
- 通过反射修改类的某些字段
- 通过反射修改类的私有字段值,调用私有方法
- 如何循环并通过使用 ASP.NET 和 VisualC # .NET 检查 DataGrid 列中 CheckBox 控件值
- ORACLE中通过SQL语句(alter table)来增加、删除、修改字段
- WPF DataGrid 自动生成行号的方法(通过修改RowHeaderTemplate的方式)
- GO 通过反射修改有共同字段的不同结构体变量
- 通过脚本运行修改数据库表的字段默认值