PB中有关ddlb和datastore的小问题
<div class="f14 B wr">版本:pb8</div><div class="wr"><span class="gray"></span> </div><div class="wr f14">我想用三个ddlb控件来实现大中小分类的选定: <br/>用户实际使用时,在ddlb_1中,从11,12,...,20选定一个(大类编号) <br/>比如12 <br/>然后点击ddlb_2时,需要显示1211,1212,1213,...1299,然后从中选一个(中类编号) <br/>比如选择1211 <br/>... <br/>最后得到分类代码(比如说121156),再对其进行操作 <br/><br/>现在我在ddlb_1的constructor事件中建立了datastore--ldt_1,实现了点击ddlb_1,列出相应的编号 <br/>但处理ddlb_2时遇到了困难:我在ddlb_2中建了datastore--ldt_2,constructor事件的代码如下: <br/>string tmp_a <br/><br/>tmp_a=Left(ddlb_1.text,2) <br/>//messagebox("",tmp_a) <br/>Datastore ldt_2 <br/>ldt_2 = Create Datastore <br/>ldt_2.Dataobject = "d_category_b" <br/>ldt_2.SetTransObject(SQLCA) <br/>ldt_2.Retrieve(tmp_a) <br/>Long ll_row,ll_total <br/>ll_Total = ldt_2.RowCount() <br/>If ll_Total<=0 Then <br/>Destroy(ldt_2) <br/>Return <br/>End If <br/>For ll_Row = 1 To ll_Total <br/>This.AddItem(ldt_2.GetItemString(ll_row,1)+" "+ldt_2.GetItemString(ll_row,2)) <br/>End For <br/>Destroy(ldt_2) <br/><br/>但点击ddlb_1选择某编号后,点击ddlb_2无法列出预想的中类编号. <br/>我试着把tmp_a=Left(ddlb_1.text,2)改成tmp_a='12',或者把ldt_2.Retrieve(tmp_a)改成ldt_2.Retrieve('12'),都可以在ddlb_2下列出 <br/><br/>又尝试加了句messagebox("",tmp_a),结果是运行即弹出对话框(无提示) <br/><br/>请高手指点问题出在哪里呢? <br/>谢谢!</div> For ll_Row = 1 To ll_Total <br/>This.AddItem(ldt_2.GetItemString(ll_row,1)+" "+ldt_2.GetItemString(ll_row,2)) <br/>End For <br/><br/>中,ldt_2的 datawindow有两列,两列分别对应什么?<br/>因为你是在constructor事件里写的,你在写第二个ddlb的时候,第一个ddlb肯定没有选择吧。<br/>没有选择,它哪里来的值?<br/><br/>建议在第一个ddlb的constructor事件里加上给自己赋值的语句试试。 For ll_Row = 1 To ll_Total <br/>This.AddItem(ldt_2.GetItemString(ll_row,1)+" "+ldt_2.GetItemString(ll_row,2)) <br/>End For <br/><br/>中,ldt_2的 datawindow有两列,两列分别对应什么?<br/>因为你是在constructor事件里写的,你在写第二个ddlb的时候,第一个ddlb肯定没有选择吧。<br/>没有选择,它哪里来的值?<br/><br/>建议在第一个ddlb的constructor事件里加上给自己赋值的语句试试。 <p>不小心多点了几次。<br/><br/>也可以将代码初始化放在selectionchanged事件里</p>[此贴子已经被作者于2006-5-19 15:09:02编辑过]
<p>谢谢,后来我试了试放到selectionchanged中,就可以了</p><p>然后有调试了好几次,弄得乱七八糟的,功能倒是实现了,估计效率很低...呵呵</p><p>看来得重新系统的学习一下~</p> <p>建议你不要用三个ddlb做</p><p>有两个建议:</p><p>1、用一个数据窗口里放三个下拉子数据窗口解决。下拉子数据窗口的好处是可以很方便的设置显示值、代码值,并且很方便地得到代码值。</p><p>2、用一个弹出窗口加一个树型列表框和一个数据存储做。</p>
页:
[1]