以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  Datalist动态调用SQL外部数据  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=1766)

--  作者:woodiy
--  发布时间:2009/2/7 18:35:00
--  Datalist动态调用SQL外部数据
1.窗口的Afterload事件:
Dim dst As WinForm.DataList = e.Form.Controls("DataList1")
dst.DataTable = DataTables("客户")
dst.Build()


显示窗口如下:

图片点击可在新窗口打开查看此主题相关图片如下:1111.jpg
图片点击可在新窗口打开查看

2.左边目录树的NodeMouseDoubleClick事件:

Dim 省市 As String = e.Form.Controls("TreeView1").SelectedNode.Text
Dim cmd As New SQLCommand
Dim dt As DataTable
Cmd.ConnectionName  = "systemdata" \'外部数据源
cmd.CommandText = "Select * From {客户} Where [省市] = \'" & 省市 & "\'"
dt = cmd.ExecuteReader()  \'生成统计表
Dim dst As WinForm.DataList = e.Form.Controls("DataList1")
dst.DataTable = dt
dst.Build()


其中"systemdata"为外部SQL数据源

点击左边的目录树,就出现如下错误, 右边Datalist中没有动戊显示:


图片点击可在新窗口打开查看此主题相关图片如下:22222.jpg
图片点击可在新窗口打开查看

请各位帮忙指点一下,谢谢!


[此贴子已经被作者于2009-2-7 18:35:22编辑过]

--  作者:菜鸟foxtable
--  发布时间:2009/2/7 19:45:00
--  
发文件上来看看?或者把NodeMouseDoubleClick事件全部代码粘贴上来.
--  作者:菜鸟foxtable
--  发布时间:2009/2/7 19:49:00
--  
或者试试这样...

在运行过程中,单击节点会执行NodeMouseClick事件,双击节点会执行NodeMouseDoubleClick事件。
例如你希望双击节点后执行特定的代码,可以设置NodeMouseDoubleClick事件的代码为:

\'如果希望通过节点标题来判断,请改为:
\'Select Case e.Text.Name

Select
Case e.Node.Name
    Case
"名称1"
       
\'在此加入相应的代码
   
Case
"名称2"
       
\'在此加入相应的代码
   
Case
"名称3"
       
\'在此加入相应的代码
   
Case
"名称4"
   
\'在此加入相应的代码

End
Select


另外留意一下下图红箭头所指目录树属性

此主题相关图片如下:001.jpg
按此在新窗口浏览图片
[此贴子已经被作者于2009-2-7 19:53:45编辑过]

--  作者:woodiy
--  发布时间:2009/2/8 19:17:00
--  
谢谢大家的帮助,现在成功了,准确的代码如下:

Dim 省市 As String = e.Form.Controls("TreeView1").SelectedNode.Text
Dim cmd As New SQLCommand
Dim dt As DataTable
Cmd.ConnectionName  = "systemdata" \'外部数据源,注意大小写,
cmd.CommandText = "Select * From [客户] Where [省市] = \'" & 省市 & "\'"     \'注意要用"[]"符号
dt = cmd.ExecuteReader()  \'生成统计表
Dim dst As WinForm.DataList = e.Form.Controls("DataList1")
dst.DataTable = dt
dst.Build()