关于gridview的那点事。。。
首先的就是显示的内容过长,撑爆页面的问题,解决的方法
gridview转成模板字段,有两个模板一个是用于编辑时候的textbox,一个是用于显示的,编辑的模板,不要动,还是用bind绑定字段,动的是用于现实的label那个模板,把Bind改成用Eval("字段名")获取内容,完了再ToString()得到字符串,再写个函数吧字符串截成指定的长度复制给label的text,另外lable有个tooltop属性,这个东西就是吧鼠标放到上面显示个提示框,可以用它来现实完整的内容,把他的值设置成Bind("字段名")就可以了。
删除的时候弹出确认对话框:
已知的最简洁的方法,把DeleteText属性设为 <div id="de" onclick="JavaScript:return confirm('确定删除吗?')">删除</div>可问题是,.net输出的html代码如下:<a href="javascript:__doPostBack('ctl00$ContentPlaceHolder1$GridView1','Delete$0')" style="color:#4A3C8C;"><div id="de" onclick="JavaScript:return confirm('确定删除吗?')">删除</div></a> 为什么内层<div>的onclick事件所返回的bool值能影响到外层<a>标签的的语句是否被执行呢?以前用直接写的删除标签是这个样子的:<a href="deleteUser.asp?id=xxx" onclick="return confirm('确定删除吗?')">删除</a> 也就是说,onclick事件接受一个bool值,其决定了click事件是否被触发。若click事件没有被触发,href内含的跳转动作就不会生效。同理,之前的那段代码中,<div>在<a>中,只有先触发<div>的click事件,<a>的跳转动作才会生效。而我们在<div>的onclick事件中若选择为其赋值false,随即取消了<div>的click事件,也同时取消了<a>的跳转。 之后,新的问题又来了。如果我们的CommandField中ButtonType是Button的话,这段代码就失效了。我想了下,可以通过将其转换为模板列的方式来解决。先将该字段转换成模板,然后编辑这个模板列,选中用于删除的Button,将其onClientClick属性设为
return confirm('您确认删除要删除么?')即可。