博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ASP.net GridView Eval和Bind 区别小解
阅读量:6330 次
发布时间:2019-06-22

本文共 2648 字,大约阅读时间需要 8 分钟。

    

    最近在做课程设计,GridView绑定SqlDataSouce进行数据更新的时候出现了难点,就是自定义在EditItemTemplete里的控件无法获取服务器ID。也就是说,如果不用GridView自带的Row_Updating事件的话(也就是不能用myGridview.Rows[e.RowIndex].Cells[...].Controls[...].FindControl("控件ID")来搜索控件),我就不能传参给UpdateCommand!!!纠结了好久,现在把解决方案记下来。

 

首先引用一篇网上点击最高的博客,引入BindEval的概念。

 

大体来说,Eval单纯用来展示数据Bind可以被修改并回写到数据库

那么问题就来了,怎么回写?

这是我的一个SqlDataSouce Demo

请注意上面橙色的一个长字符串UpdateCommand里@开头的标变量和一个UpdateParameters标记段里的几个值。ASP.NET框架似乎就是用它们,实现了“识别”所有采用Bind字段绑定的值。那么到这里,我们先记住一点,他们是有先后顺序的!!!

 

 

我折腾了一下午带一个晚上,得出的理解是(如有错误,请一定告诉我!):你在GridView里用了多少个Bind,你UpdateCommand字符串里面至少就应该有多少个标变量

现在来看我的gridview:

.png" class="GridView_floorImg" title="此房间位于<%# Eval("Rposition")%>楼" alt="此房间位于<%# Eval("Rposition")%>楼" />
<%# Eval("Description")%>

我用橙色标记出了GridView中用了Bind的地方,总共三个,按顺序对应着UpDateCommand中前三个标变量。

至于框架是怎么识别RoomId字段的我还没有研究透,等研究透数据控件的原理或许就知道了,但起码现在对于我来说已经够用了!

注:此时我后台cs文件中并没有代码,GridView也并没有绑定Row_Updating事件,可一切就这么发生了!感想就是,对于初学者发现自己的数据成功绑定并正确得到修改还是很有成就感的。

 

看着同学项目中杂七杂八难看的代码,不禁感叹微软的小控件的微妙之处。

有空决定再写一篇关于CSS美化asp.net自带控件的博文吧!

 

转载于:https://www.cnblogs.com/Xsdd/p/4122064.html

你可能感兴趣的文章
ArcGIS地图投影转换
查看>>
Python re
查看>>
Linux基础命令---gzip
查看>>
忠告15:山姆。摩尔。沃尔顿:追逐着,并坚持不懈
查看>>
openstack-mikata之网络服务(controller安装部署)
查看>>
我的友情链接
查看>>
通过HAproxy实现动静分离
查看>>
Codeforces Round #256 (Div. 2) D. Multiplication Table 【二分】
查看>>
ARM汇编指令格式
查看>>
HDU-2044-一只小蜜蜂
查看>>
HDU-1394-Minimum Inversion Number
查看>>
jsonView谷歌插件
查看>>
df -h 卡住
查看>>
K-means算法(理论+opencv实现)
查看>>
第七天1
查看>>
[转] createObjectURL方法 实现本地图片预览
查看>>
Jquery中的Jquery.extend, Jquery.fn.extend,Jquery.prototype
查看>>
JavaScript—DOM编程核心.
查看>>
获得表字段名称和数据类型
查看>>
python 日志打印
查看>>