framework2.0
要达到效果:
当点击gridview中任一条记录的linkbutton(在RowDataBound时,捆有唯一标识该条记录的id)时,下面的iframe可以显示详细的编辑页面,并且显示该条记录的各个field值。要求每次点击时,整个页面不刷新,只有iframe刷新。
我的问题是,如何把点击的那条记录的所有属性值都传给iframe?
因为gridview绑定的datatable里的值是从不同server上远程取回来拼接成的,相当麻烦。每条记录都含有很多信息。如果每次只传焦点记录的id给iframe,然后重新去取该条记录的信息的话,并不是不可以,只是我觉得似乎损耗很大,所以希望可以利用已经取出来的存在datatable中的值。
其实这个效果如果允许整个页面刷新的话,我已经实现了。但现在要求用iframe局部刷新,不允许刷新全页面了...
原来的方法:
dt = (DataTable)ViewState["datatable"]; //用ViewState["datatable"]存的就是绑定gridview的数据源DataRow[] row = dt.Select("id='" + ((LinkButton)sender).CommandArgument.ToString()+"'"); //整个页面刷新时,我用这种方法取出具体每条记录信息。然后依次把各个属性赋值给各个控件...
现在要求局部页面刷新的话,我应该怎么在不刷新整个页面的前提下,把每一条数据的所有datarow里包含的信息都传给iframe呢?不刷新页面就不能执行后台代码那怎么取值传值啊? (┬_┬)
之前没有使用过iframe的经验,现在完全傻了,不知道该如何着手,请大家给点建议。关于我上面现有的做法有地方做的不好的,也欢迎大家指点,谢谢了!
(因为某些原因不允许使用ajax,所以选择了iframe,所以请大家不要建议我如何用ajax实现了... Orz)
8 回答
达令说
TA贡献1821条经验 获得超6个赞
没什么好建议,只有想说:
如果每次只传焦点记录的id给iframe,然后重新去取该条记录的信息的话,并不是不可以,只是我觉得似乎损耗很大
-------------------
并没有你想象的损耗很大的情况存在,相比,你用了现复杂的代码去实现,更显的损失更大:一来是精力,二来是代码更为多杂。
合理的判断性能及用简洁的方法实现功能,是一门我们大家需要学习与掌握的。
MYYA
TA贡献1868条经验 获得超4个赞
您说的有道理,确实按目前的情况来看,我要按这个思路想下去会花费很多的时间和精力,可是如果用id重新去取单挑记录的信息的话,为了拼全每一条记录所需要的全部信息真的是很麻烦,要连接两遍不同的远程服务器分别取值,然后想办法拼接什么的....很多操作感觉几乎就是重复之前的部分,可是又没法跟之前的操作合并到一起代码重用什么的,于是就有点不甘心。我现在确实是有点纠结不知道该怎么办好了。。。 (┬_┬)
- 8 回答
- 0 关注
- 350 浏览
添加回答
举报
0/150
提交
取消