日期:2014-05-18  浏览次数:20536 次

初学asp.net,关于gridview绑定数据源的用法,请指教!
之前做了一年的winform,在winfrom下我的datagridview用法比较简单, 先把数据赋值到dataTable中(包括字段名和数据都放在dataTable中),然后将dataTable赋值个datagridview.DataSource。

现在要做asp.net项目,不知道继续用这一招是否仍然合适?(是否在前台代码中也要做一些事情呢)



还有一些问题->
1.列的高度如何设置,如果某一字段内容过多,则导致列的高度参差不齐感觉好难看。。。
2.列的宽度如何设置?
3.怎样gridview中某列添加 “修改”和“删除”按钮? 当我点击某一行的“修改”按钮时,后台代码是怎么取到我究竟修改的是哪条记录呢??


不好意思,问题有点多,希望高手指点!!

------解决方案--------------------
那你要把你的CSS设置好了!!!!

修改和删除你可以在gridview 事件中去写。给按钮绑定ID
------解决方案--------------------
gridview使用参考
http://www.cnblogs.com/30ErLi/archive/2010/09/17/1829252.html
------解决方案--------------------
探讨
之前做了一年的winform,在winfrom下我的datagridview用法比较简单, 先把数据赋值到dataTable中(包括字段名和数据都放在dataTable中),然后将dataTable赋值个datagridview.DataSource。

现在要做asp.net项目,不知道继续用这一招是否仍然合适?(是否在前台代码中也要做一些事情呢)



还有一些问题->
1.列的……

------解决方案--------------------
先问答一下你的问题:
1:高度的话可以直接在控件中设置,同时可以添加模板列,在模板列里面你可以添加各种控件,比如Label、textbox等,那么这些可以直接用css来控制(在设置css的时候最好看着生成的html源码来写),还有可以直接用控件的Height属性来控制,如果内容过多,LZ可以添加一个截取字符串的方法,多余的字符串用...来代替,这样就不会出现参差不齐的情况了。
2:列的宽度可以在gridview控件的编辑框中设置,它每一列都可以设置一个width的
3:你可以给你的Gridview设置一个主键,比如你数据表的主键ID为这个控件的KeyName((int)GridView1.DataKeys[e.NewEditIndex].Value;),那么你在修改,删除按钮的事件里面或者相应列的主键,然后用主键来进行删除,直接修改的话建议将主键ID的值传到另一个页面进行单独修改(不过gv这个控件本来在自己身上就有一个编辑的效果的)。
至于绑定数据源的方法其实winform里面是一样的

然后再给LZ一些建议:
1:LZ之前是搞winform的,不知道LZ的html+css水平怎么样,最好把这两个学好了,做webform必须的
2:LZ有精力的话一定要去学下javascript,不过刚刚开始建议想用jquery这个类库,现在的web也是需要的
3:建议LZ少用控件,特别是你刚刚问的那个Gridview,他太臃肿和难控制了,如果需要列表显示的话直接用repeater这个控件好了,它至少不会生成杂七杂八的代码
4:建议LZ现在做webform之前先去51aspx上面下载一些相关的源码看看,很有作用的。
上面都是我的个人之见,希望我的回答对LZ有帮助哈
------解决方案--------------------
微软在所见即所得的控件开发思路上还是比较“负责”的。在asp.net上,以及在silverlight上,都有一模一样的
datagridview.DataSource
的做法。而且还有更好的做法。

不过asp.net的问题是5、6年前它没有真正把控件都移植为ajax方式(渲染在浏览器,而服务器只是提供数据服务),这才让一些使用asp.net但是其实只是使用html/javascript的开发人员得了便宜卖乖。

虽然我在4年前已经确定不再使用asp.net开发,但是我们还是有一些项目需要维护或者改造,asp.net能够得到类似于winform的开发体验,而且也可以很灵活地设置整个网站的theme,这是毋庸置疑的。

如果是学习,可以学好asp.net。以为它可以锻炼你的逻辑思维,可以(如果你也熟悉theme的话)让你写一点web界面原型。如果是注重符合这个aajx或者RIA时代用户体验的开发,我想单纯使用asp.net这个工具是说明不了任何技术问题,无法编写出用户体验好的web企业应用程序。
------解决方案--------------------
强烈建议不要用DataView,而是用repeater自己画
------解决方案--------------------
datagridview.DataSource=xxxx然后再datagridview.DataBind()这两句是帮顶时候必须写的,另外asp还有一个回传机制 要注意一下。在每次操作完之后最好是在重新绑定一下。
------解决方案--------------------
按钮的话
------解决方案--------------------
探讨

引用:

微软在所见即所得的控件开发思路上还是比较“负责”的。在asp.net上,以及在silverlight上,都有一模一样的
datagridview.DataSource
的做法。而且还有更好的做法。

不过asp.net的问题是5、6年前它没有真正把控件都移植为ajax方式(渲染在浏览器,而服务器只是提供数据服务),这才让一些使用asp.net但是其实只是使……

------解决方案--------------------
GridView72般绝技:http://blog.csdn.net/21aspnet/article/details/1540301