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

使用中关于gridview的三个问题
我现在使用asp.net   开始做一些程序,属于初级水平,以前一直做cs结构的

我现在做一个程序,很简单,上面有几个textbox和radiobutton之类的,由用户自己设置查询的内容,然后点击后面的button,将查询结构显示在gridview中,为了灵活,我不是用的绑定的方式,都是自己写的代码。

问题1:将gridview拖放到页面上后,好像用鼠标并不能随意的放到任何位置上,放上就不动了,其他的控件也是一样的,我想问问大家,你们在.net里是如何设计界面的?   曾听说有让用   Dreamweaver   设计界面的,可是我用这个打开后,gridview显示的是“asp”的一个小图标   这样怎么设计啊,我晕了,呵呵

问题2:我的代码如下:

定义   connection     定义   dataset   ...
Dim   TrainAdapter   As   SqlDataAdapter   =   New   SqlDataAdapter(StrTrainSearch,   TrainConn)

TrainAdapter.Fill(TrainDataSet,   "Train ")

GridView1.DataSource   =   TrainDataSet.Tables( "Train ")
GridView1.DataBind()

最后释放若干对象...
--------------------------

印象中好像有个帖子说用dataset速度不快,用reader什么的速度快
我这个地方只有一个查询,其他什么功能都没有,
我就是要以最快的速度查询并显示出来,我这里能用那个reader吗?
如果能的话,我应该怎么改呢?谢谢

问题三:还是关于速度的问题
我的查询页面是在一个框架结构中的,框架分为上下结构,
上面是菜单之类的,下面是这个查询页,
在查询页的load事件里,我调用了查询的过程,默认显示出一些数据来,
但是我发现,第一次显示时速度很慢,当点击开这个页面时,
框架上方的页面很快就显示出来了,但是下面的查询页面需要很长时间才能查询出来,在这之前下面是一片空白,会让人误以为是没内容呢
我设想能有个什么方法来解决这个问题,比如,一开始显示出一个空的表格或者其他什么,告诉用户“正在查询请稍后”,然后当查询完成时,再显示出结果来,
我也不知道这个技术应该用到什么,所以也不知道该搜些什么信息,
只好过来发个贴了


另:这个程序,代码很简单,查询的数据量也很小,一般几十行,最多也就几百行,用的是sql2000的数据库,但是页面的使用频率会很高,所以我希望以最快的速度将结果展现出来,在这方面有什么应注意的地方,请大家指点一下。



------解决方案--------------------
问题1:这个不懂,从不做界面

问题2:...

这样改...
Dim TrainCommand As SqlCommand = New SqlCommand(StrTrainSearch, TrainConn)

TrainConn.Open

GridView1.DataSource = TrainCommand.ExecuteReader()
GridView1.DataBind()

TrainConn.Close()

问题三:还是关于速度的问题
使用存储过程替代SQL语句
如果用户访问的数据差不多相同,考虑使用缓存

------解决方案--------------------
可以给个Div显示 "正在加载... " 不过要用到AJAX技术
------解决方案--------------------
问题一,那个只要选中控件。将布局设置为绝对就可以了
------解决方案--------------------
问题一: Dreamweaver你主要设计好界面就行了,你可以把那界面拷过去vs里面再把GRIDVIEW摆到需要放的地方.当然大小要控制好,不然很容易被你的数据撑破界面
------解决方案--------------------
问题一:建议楼主先看一下html的基本知识,html页面布局和windows窗体的布局是不同的,在vs2005里的布局情况在Dreamweaver里面也是一样的。还有Dreamweaver是不支持asp.net2.0的服务器控件的。
------解决方案--------------------
改绝对位置.....vs设计table真是恶心啊......
------解决方案--------------------
问题三:GridView的EmptyDataTemplate就是在没有数据的时候显示提示用的模板
------解决方案--------------------
数据正在加栽中...你可以使用vs2005中的ajax控件实现相对简单些,效率不清楚.
------解决方案--------------------
我来回答一下
1.我也遇到这样的情况,VS的table设计可以说是恶心死了。你先在DR里面设计好TABLE,布局好,然后把代码COPY过来就可以了。
2。方法有很多这里我说一个把。
文本框+DS+GV
把GV帮定到DS上面
if (TextBox1.Text != " ")//文本框
{
SqlDataSource1.SelectCommand = "select * from users where name like ' " + TextBox1.Text + " ' ";

GridView1.DataBind();
}
else
{
SqlDataSource1.SelectCommand = "select * from users ";
GridView1.DataBind();
}
3.速度问题
当然可以用 存储过程来代替SQL语句,速度要快好多!!
如果象你说的那样的话,我想应该是你的SQL语句有问题,不是说不能执行,可能是你要显示的数据是遍历了一遍数据库,或者是你的数据库设计有问题。。这个方面太多。。多看书!!