如何才能把GridView列批量转换为编辑状态. 请教,如何才能把GridView指定须要编辑的列,批量转换为编辑状态. 我已经知道一种,隐藏编辑列来的办法,但是我想求得更好的办法,谢谢. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我靠,怎么弄图片啊?这东西不是跟你说了么.利用gridview中的模板列.还有就是编辑和删除我建议用模板列来做,用系统提供的这个东西我总是觉得很痛苦,其实手动控制感觉更自由不过单条的编辑和删除,不是这个帖子的目的.我就说一说如何实现你说的全部编辑全部更新吧没有什么可说的,"天虹穿"这一列肯定是个模板列,一个label一个textbox,编辑的时候显示文本框非编辑状态显示label.这个东西,不管是从数据库里获取的,还是手动编写的,基本上都是要放到一个dataset/datatable中.所以,可以利用RowDataBound + 一个标示字段来实现.加入你的数据是放在dataset中的第0个表里即 ds.tables[0].首先加入一个字段//假设天虹穿是第3列,即它的数组下标是2dt = ds.tables[0];dt.columns.add("edit",typeof(bool));dt.columns["edit"].defaultvalue = false;//即非编辑状态然后在rowdatabound事件中填写代码if (e.row.type == DataControlRowType.datarow)//即数据行,非gridview头或尾{ bool isedit = bool.parse(ds.tables[0].rows[e.row.rowindex]["edit"].tostring()); if (e.row.findcontrol("textbox1") != null) { (e.row.findcontrol("textbox1") as textbox).visible = isedit; (e.row.findcontrol("textbox1") as textbox).text = ds.tables[0].rows[e.row.rowindex]["天虹穿那一列"].tostring(); } if (e.row.findcontrol("label1") != null) { (e.row.findcontrol("label1") as label).visible = !isedit; (e.row.findcontrol("label1") as label). = ds.tables[0].rows[e.row.rowindex]["天虹穿那一列"].tostring(); }}上面算是伪代码了.大小写你自己去vs中输入自然就知道了(上面是控制文本框与label可见性的)至于剩下的全部更新,就有点麻烦了.因为,你填东西后没有与后台交互,所以在点全部更新的时候必须把里面的值都取出来,然后弄到ds中.这本身没有什么特殊的技术而言,当然js是肯定需要的了.我觉得要解决这个问题,完全算是个人是一种思维习惯了.可以跟textbox注册一个onblur事件,然后在js的脚本中来获得行号(他会对应到ds.tables[0]中的rows号 e.row.rowsindex),然后再维护一个数组,或者是字符串,在onblur事件中处理它.在更新的时候去遍历这个数组,进而将值都保存回去.前面的或许你看的还有些眉目,后面的肯定迷糊了.可能是你从来没有过这种经验,等我中午有时间了,给你做一个demo.下次有问题就再群里问,要是觉得群里解决不了,你在CSDN发帖子后就别在群里弄个链接让大家看了 我靠,怎么弄图片啊?这东西不是跟你说了么.利用gridview中的模板列.还有就是编辑和删除我建议用模板列来做,用系统提供的这个东西我总是觉得很痛苦,其实手动控制感觉更自由不过单条的编辑和删除,不是这个帖子的目的.我就说一说如何实现你说的全部编辑全部更新吧没有什么可说的,"天虹穿"这一列肯定是个模板列,一个label一个textbox,编辑的时候显示文本框非编辑状态显示label.这个东西,不管是从数据库里获取的,还是手动编写的,基本上都是要放到一个dataset/datatable中.所以,可以利用RowDataBound + 一个标示字段来实现.加入你的数据是放在dataset中的第0个表里即 ds.tables[0].首先加入一个字段//假设天虹穿是第3列,即它的数组下标是2dt = ds.tables[0];dt.columns.add("edit",typeof(bool));dt.columns["edit"].defaultvalue = false;//即非编辑状态然后在rowdatabound事件中填写代码if (e.row.type == DataControlRowType.datarow)//即数据行,非gridview头或尾{ bool isedit = bool.parse(ds.tables[0].rows[e.row.rowindex]["edit"].tostring()); if (e.row.findcontrol("textbox1") != null) { (e.row.findcontrol("textbox1") as textbox).visible = isedit; (e.row.findcontrol("textbox1") as textbox).text = ds.tables[0].rows[e.row.rowindex]["天虹穿那一列"].tostring(); } if (e.row.findcontrol("label1") != null) { (e.row.findcontrol("label1") as label).visible = !isedit; (e.row.findcontrol("label1") as label). = ds.tables[0].rows[e.row.rowindex]["天虹穿那一列"].tostring(); }}上面算是伪代码了.大小写你自己去vs中输入自然就知道了(上面是控制文本框与label可见性的)至于剩下的全部更新,就有点麻烦了.因为,你填东西后没有与后台交互,所以在点全部更新的时候必须把里面的值都取出来,然后弄到ds中.这本身没有什么特殊的技术而言,当然js是肯定需要的了.我觉得要解决这个问题,完全算是个人是一种思维习惯了.可以跟textbox注册一个onblur事件,然后在js的脚本中来获得行号(他会对应到ds.tables[0]中的rows号 e.row.rowsindex),然后再维护一个数组,或者是字符串,在onblur事件中处理它.在更新的时候去遍历这个数组,进而将值都保存回去.前面的或许你看的还有些眉目,后面的肯定迷糊了.可能是你从来没有过这种经验,等我中午有时间了,给你做一个demo.下次有问题就再群里问,要是觉得群里解决不了,你在CSDN发帖子后就别在群里弄个链接让大家看了 我靠,怎么弄图片啊?这东西不是跟你说了么.利用gridview中的模板列.还有就是编辑和删除我建议用模板列来做,用系统提供的这个东西我总是觉得很痛苦,其实手动控制感觉更自由不过单条的编辑和删除,不是这个帖子的目的.我就说一说如何实现你说的全部编辑全部更新吧没有什么可说的,"天虹穿"这一列肯定是个模板列,一个label一个textbox,编辑的时候显示文本框非编辑状态显示label.这个东西,不管是从数据库里获取的,还是手动编写的,基本上都是要放到一个dataset/datatable中.所以,可以利用RowDataBound + 一个标示字段来实现.加入你的数据是放在dataset中的第0个表里即 ds.tables[0].首先加入一个字段//假设天虹穿是第3列,即它的数组下标是2dt = ds.tables[0];dt.columns.add("edit",typeof(bool));dt.columns["edit"].defaultvalue = false;//即非编辑状态然后在rowdatabound事件中填写代码if (e.row.type == DataControlRowType.datarow)//即数据行,非gridview头或尾{ bool isedit = bool.parse(ds.tables[0].rows[e.row.rowindex]["edit"].tostring()); if (e.row.findcontrol("textbox1") != null) { (e.row.findcontrol("textbox1") as textbox).visible = isedit; (e.row.findcontrol("textbox1") as textbox).text = ds.tables[0].rows[e.row.rowindex]["天虹穿那一列"].tostring(); } if (e.row.findcontrol("label1") != null) { (e.row.findcontrol("label1") as label).visible = !isedit; (e.row.findcontrol("label1") as label). = ds.tables[0].rows[e.row.rowindex]["天虹穿那一列"].tostring(); }}上面算是伪代码了.大小写你自己去vs中输入自然就知道了(上面是控制文本框与label可见性的)至于剩下的全部更新,就有点麻烦了.因为,你填东西后没有与后台交互,所以在点全部更新的时候必须把里面的值都取出来,然后弄到ds中.这本身没有什么特殊的技术而言,当然js是肯定需要的了.我觉得要解决这个问题,完全算是个人是一种思维习惯了.可以跟textbox注册一个onblur事件,然后在js的脚本中来获得行号(他会对应到ds.tables[0]中的rows号 e.row.rowsindex),然后再维护一个数组,或者是字符串,在onblur事件中处理它.在更新的时候去遍历这个数组,进而将值都保存回去.前面的或许你看的还有些眉目,后面的肯定迷糊了.可能是你从来没有过这种经验,等我中午有时间了,给你做一个demo.下次有问题就再群里问,要是觉得群里解决不了,你在CSDN发帖子后就别在群里弄个链接让大家看了 老大,杂回事呢,我还菜呢..提示 if (e.Row.findcontrol("textbox1") != null) 中的e并不包含“Row”的定义错误 1 “System.EventArgs”并不包含“Row”的定义 D:\!ayurep\成都企业网_CDQY\XkCmsV2\webForm\Manager\ayurep_admin\MartPrice_Add.aspx.cs 27 52 webForm 唉~~JS不怎么会用!刚做了类似的gridview,我是用遍历获取修改的数据还准备用FSO来操作图库!!晕~~ 去我资源里下个东西吧,记得给分,资源免费!realworldgridview 如何获取Repeater控件中FCKeditor控件的值??? 在2行1列的第二行table中加入DIV不能实现的问题 判断长度!! Repeater控件中动态增加控件 SqlDataAdapter.Fill()分页效率如何 .NET 为什么本地测试可以添加附件,上传后不能添加附件[急] 还是关于正则表达式的剔除字符串的问题,在麻烦思归朋友看一下。 在线等,泛解析成功,url重写二级域名不成功,大伙帮忙看看那里写的不对。 DataGrid动态添加列的问题?? 今日级别上升了,再发放100分!大家快抢阿:) 请教各位csdn首页的系统短消息怎么做啊 js取不到dropdownlist的值?
这东西不是跟你说了么.利用gridview中的模板列.还有就是编辑和删除我建议用模板列来做,用系统提供的这个东西我总是觉得很痛苦,其实手动控制感觉更自由
不过单条的编辑和删除,不是这个帖子的目的.我就说一说如何实现你说的全部编辑全部更新吧
没有什么可说的,"天虹穿"这一列肯定是个模板列,一个label一个textbox,编辑的时候显示文本框非编辑状态显示label.
这个东西,不管是从数据库里获取的,还是手动编写的,基本上都是要放到一个dataset/datatable中.所以,可以利用RowDataBound + 一个标示字段来实现.
加入你的数据是放在dataset中的第0个表里即 ds.tables[0].
首先加入一个字段
//假设天虹穿是第3列,即它的数组下标是2
dt = ds.tables[0];
dt.columns.add("edit",typeof(bool));
dt.columns["edit"].defaultvalue = false;//即非编辑状态
然后在rowdatabound事件中填写代码
if (e.row.type == DataControlRowType.datarow)//即数据行,非gridview头或尾
{
bool isedit = bool.parse(ds.tables[0].rows[e.row.rowindex]["edit"].tostring());
if (e.row.findcontrol("textbox1") != null)
{
(e.row.findcontrol("textbox1") as textbox).visible = isedit;
(e.row.findcontrol("textbox1") as textbox).text = ds.tables[0].rows[e.row.rowindex]["天虹穿那一列"].tostring();
}
if (e.row.findcontrol("label1") != null)
{
(e.row.findcontrol("label1") as label).visible = !isedit;
(e.row.findcontrol("label1") as label). = ds.tables[0].rows[e.row.rowindex]["天虹穿那一列"].tostring();
}
}
上面算是伪代码了.大小写你自己去vs中输入自然就知道了(上面是控制文本框与label可见性的)
至于剩下的全部更新,就有点麻烦了.因为,你填东西后没有与后台交互,所以在点全部更新的时候必须把里面的值都取出来,然后弄到ds中.这本身没有什么特殊的技术而言,当然js是肯定需要的了.我觉得要解决这个问题,完全算是个人是一种思维习惯了.可以跟textbox注册一个onblur事件,然后在js的脚本中来获得行号(他会对应到ds.tables[0]中的rows号 e.row.rowsindex),然后再维护一个数组,或者是字符串,在onblur事件中处理它.在更新的时候去遍历这个数组,进而将值都保存回去.
前面的或许你看的还有些眉目,后面的肯定迷糊了.可能是你从来没有过这种经验,等我中午有时间了,给你做一个demo.下次有问题就再群里问,要是觉得群里解决不了,你在CSDN发帖子后就别在群里弄个链接让大家看了
这东西不是跟你说了么.利用gridview中的模板列.还有就是编辑和删除我建议用模板列来做,用系统提供的这个东西我总是觉得很痛苦,其实手动控制感觉更自由
不过单条的编辑和删除,不是这个帖子的目的.我就说一说如何实现你说的全部编辑全部更新吧
没有什么可说的,"天虹穿"这一列肯定是个模板列,一个label一个textbox,编辑的时候显示文本框非编辑状态显示label.
这个东西,不管是从数据库里获取的,还是手动编写的,基本上都是要放到一个dataset/datatable中.所以,可以利用RowDataBound + 一个标示字段来实现.
加入你的数据是放在dataset中的第0个表里即 ds.tables[0].
首先加入一个字段
//假设天虹穿是第3列,即它的数组下标是2
dt = ds.tables[0];
dt.columns.add("edit",typeof(bool));
dt.columns["edit"].defaultvalue = false;//即非编辑状态
然后在rowdatabound事件中填写代码
if (e.row.type == DataControlRowType.datarow)//即数据行,非gridview头或尾
{
bool isedit = bool.parse(ds.tables[0].rows[e.row.rowindex]["edit"].tostring());
if (e.row.findcontrol("textbox1") != null)
{
(e.row.findcontrol("textbox1") as textbox).visible = isedit;
(e.row.findcontrol("textbox1") as textbox).text = ds.tables[0].rows[e.row.rowindex]["天虹穿那一列"].tostring();
}
if (e.row.findcontrol("label1") != null)
{
(e.row.findcontrol("label1") as label).visible = !isedit;
(e.row.findcontrol("label1") as label). = ds.tables[0].rows[e.row.rowindex]["天虹穿那一列"].tostring();
}
}
上面算是伪代码了.大小写你自己去vs中输入自然就知道了(上面是控制文本框与label可见性的)
至于剩下的全部更新,就有点麻烦了.因为,你填东西后没有与后台交互,所以在点全部更新的时候必须把里面的值都取出来,然后弄到ds中.这本身没有什么特殊的技术而言,当然js是肯定需要的了.我觉得要解决这个问题,完全算是个人是一种思维习惯了.可以跟textbox注册一个onblur事件,然后在js的脚本中来获得行号(他会对应到ds.tables[0]中的rows号 e.row.rowsindex),然后再维护一个数组,或者是字符串,在onblur事件中处理它.在更新的时候去遍历这个数组,进而将值都保存回去.
前面的或许你看的还有些眉目,后面的肯定迷糊了.可能是你从来没有过这种经验,等我中午有时间了,给你做一个demo.下次有问题就再群里问,要是觉得群里解决不了,你在CSDN发帖子后就别在群里弄个链接让大家看了
这东西不是跟你说了么.利用gridview中的模板列.还有就是编辑和删除我建议用模板列来做,用系统提供的这个东西我总是觉得很痛苦,其实手动控制感觉更自由
不过单条的编辑和删除,不是这个帖子的目的.我就说一说如何实现你说的全部编辑全部更新吧
没有什么可说的,"天虹穿"这一列肯定是个模板列,一个label一个textbox,编辑的时候显示文本框非编辑状态显示label.
这个东西,不管是从数据库里获取的,还是手动编写的,基本上都是要放到一个dataset/datatable中.所以,可以利用RowDataBound + 一个标示字段来实现.
加入你的数据是放在dataset中的第0个表里即 ds.tables[0].
首先加入一个字段
//假设天虹穿是第3列,即它的数组下标是2
dt = ds.tables[0];
dt.columns.add("edit",typeof(bool));
dt.columns["edit"].defaultvalue = false;//即非编辑状态
然后在rowdatabound事件中填写代码
if (e.row.type == DataControlRowType.datarow)//即数据行,非gridview头或尾
{
bool isedit = bool.parse(ds.tables[0].rows[e.row.rowindex]["edit"].tostring());
if (e.row.findcontrol("textbox1") != null)
{
(e.row.findcontrol("textbox1") as textbox).visible = isedit;
(e.row.findcontrol("textbox1") as textbox).text = ds.tables[0].rows[e.row.rowindex]["天虹穿那一列"].tostring();
}
if (e.row.findcontrol("label1") != null)
{
(e.row.findcontrol("label1") as label).visible = !isedit;
(e.row.findcontrol("label1") as label). = ds.tables[0].rows[e.row.rowindex]["天虹穿那一列"].tostring();
}
}
上面算是伪代码了.大小写你自己去vs中输入自然就知道了(上面是控制文本框与label可见性的)
至于剩下的全部更新,就有点麻烦了.因为,你填东西后没有与后台交互,所以在点全部更新的时候必须把里面的值都取出来,然后弄到ds中.这本身没有什么特殊的技术而言,当然js是肯定需要的了.我觉得要解决这个问题,完全算是个人是一种思维习惯了.可以跟textbox注册一个onblur事件,然后在js的脚本中来获得行号(他会对应到ds.tables[0]中的rows号 e.row.rowsindex),然后再维护一个数组,或者是字符串,在onblur事件中处理它.在更新的时候去遍历这个数组,进而将值都保存回去.
前面的或许你看的还有些眉目,后面的肯定迷糊了.可能是你从来没有过这种经验,等我中午有时间了,给你做一个demo.下次有问题就再群里问,要是觉得群里解决不了,你在CSDN发帖子后就别在群里弄个链接让大家看了
提示 if (e.Row.findcontrol("textbox1") != null) 中的e并不包含“Row”的定义
错误 1 “System.EventArgs”并不包含“Row”的定义 D:\!ayurep\成都企业网_CDQY\XkCmsV2\webForm\Manager\ayurep_admin\MartPrice_Add.aspx.cs 27 52 webForm
还准备用FSO来操作图库!!晕~~