以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  再提DataList显示行号和选择框的速度问题!  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=2584)

--  作者:cpayinyuan
--  发布时间:2009/4/24 8:16:00
--  再提DataList显示行号和选择框的速度问题!
    我以前提过,DataList的RowHeaderVisible和 CheckBoxes应作为加载后的一项属性来对待,而目前的系统中作为加载时的一个选项,改变这个设置后需要重新用Build加载才生效。以前只是感觉不太合适,没有意识到有什么大的问题,现在发现最严重的问题在于速度。
    现在我在DataList显示后,改变一下这个选项,需要重新加载 DataList的数据,基本上需要等待30秒左右的时间,而如果是把这两个选项改为加载后的选项,估计1秒钟就够了吧(改变RowFilter就很快)。所以,希望贺老师把这个选项改一下。
[此贴子已经被作者于2009-4-24 10:01:54编辑过]

--  作者:狐狸爸爸
--  发布时间:2009/4/24 8:46:00
--  

嘿嘿,我从来就没有说Build就必须重新加载数据,是你自己这么想的。

你可以做一个切换按钮:

With e.Form.Controls("DataList1")
    .CheckBoxes = Not .CheckBoxes
    .Build
End With

图片点击可在新窗口打开查看


--  作者:ybil
--  发布时间:2009/4/24 8:51:00
--  
以下是引用狐狸爸爸在2009-4-24 8:46:00的发言:

嘿嘿,我从来就没有说Build就必须重新加载数据,是你自己这么想的。

你可以做一个切换按钮:

With e.Form.Controls("DataList1")
    .CheckBoxes = Not .CheckBoxes
    .Build
End With

图片点击可在新窗口打开查看

要打PP,不明確就是誤導!图片点击可在新窗口打开查看


--  作者:狐狸爸爸
--  发布时间:2009/4/24 8:53:00
--  
图片点击可在新窗口打开查看
--  作者:ybil
--  发布时间:2009/4/24 8:59:00
--  
一鍵兩用:

With e.Form.Controls("DataList1")
    .RowHeaderVisible = 1
    .CheckBoxes = Math.abs(Val(.CheckBoxes))-1
    .Build()
    e.Sender.Text = choose(Math.abs(Val(.CheckBoxes))+1,"复选框","行号")
End With

--  作者:cpayinyuan
--  发布时间:2009/4/24 9:59:00
--  
以下是引用狐狸爸爸在2009-4-24 8:46:00的发言:

嘿嘿,我从来就没有说Build就必须重新加载数据,是你自己这么想的。

你可以做一个切换按钮:

With e.Form.Controls("DataList1")
    .CheckBoxes = Not .CheckBoxes
    .Build
End With

图片点击可在新窗口打开查看

我表达得不太对,但事实仍然是如此,仍然存在同样的问题!
只要用build,速度就非常慢,需要很长时间!但若改变DataList的属性或者用RowFilter,需要的时间就非常短.


--  作者:don
--  发布时间:2009/4/24 10:53:00
--  
以下是引用cpayinyuan在2009-4-24 9:59:00的发言:

我表达得不太对,但事实仍然是如此,仍然存在同样的问题!
只要用build,速度就非常慢,需要很长时间!但若改变DataList的属性或者用RowFilter,需要的时间就非常短.

     确实如此.可能DataList中序号及CheckBoxes共用[_Identify]一列,序号及CheckBoxes间的转变需更改列属性(设计表),而设计表是要存盘的!
     如让他爹另加一逻辑列用于显示CheckBoxes可能解决问题.


--  作者:狐狸爸爸
--  发布时间:2009/4/24 11:02:00
--  
是的,除非来两列,一个行号,一个复选框,分别设置,否则没办法。
--  作者:cpayinyuan
--  发布时间:2009/4/24 11:11:00
--  
以下是引用狐狸爸爸在2009-4-24 11:02:00的发言:
是的,除非来两列,一个行号,一个复选框,分别设置,否则没办法。

    希望贺老师不要轻易说没有办法!
    切换一下行号/选择框,对DataList的主体部分的显示没有任何影响,难道会需要很复杂的运算、需要很长的时间吗?我不知道DataList的Build都作了哪些操作,但我相信,当我改变显示行号的选项后运行Build,如果单纯改变显示行号还是选择框应该是很快的,目前的系统肯定做了许多不必要的重复性运算,所以速度才会这么慢!虽然这是个小问题,但目前的速度,当数据量大的时候这个功能根本无法使用,建议想办法改进一下!许许多多复杂的问题都能解决了,我不相信这个小问题解决不了?!
    另外ColumnList也存在同样的速度非常慢的问题。
    补充:行号和选择框在表内部怎么存储我们不关心,我只关心速度的问题。

   



[此贴子已经被作者于2009-4-24 11:14:21编辑过]

--  作者:don
--  发布时间:2009/4/24 11:31:00
--  
或者他爹看看DataList能否支持Table的表视图?如能,则不必每表另加一列用于显示CheckBoxes.