那就看看我做的,建立一个mutua类文件,在里面写代码
namespace *******{
class mutua
{
public static SqlConnection conn = null
public DataSet ds = null
public SqlDataAdapter sda = null
public String ExceptionStr = ""
public void Openlink()
{
conn = new SqlConnection()
conn.ConnectionString = "Server=192.168.1.240uid=sapwd=chaimisin8712*database=GZ_DATA"
try
{
conn.Open()
}
catch
{
conn.Close()
}
}
public void linkSQL(String sql)
{
if (conn != null)
{
ds = new DataSet()
sda = new SqlDataAdapter()
sda.SelectCommand = new SqlCommand(sql, conn)
SqlCommandBuilder builder = new SqlCommandBuilder(sda)
sda.Fill(ds)
}
}
}
}
启动窗体初始化时就openlink打开链接,后面应用到窗体使用treeview就写这样的代码
void getView()
{
mutua s = new mutua()
mutua d = new mutua()
mutua e = new mutua()
s.linkSQL("Select Distinct bm from a_gydy order by bm")
if (s.ds != null)
{
for (int i = 0 i < s.ds.Tables[0].Rows.Count i++)
{
treeView1.Nodes.Add(s.ds.Tables[0].Rows[i][0].ToString())
d.linkSQL("Select Distinct gy from a_gydy where bm='" + s.dss.Tables[0].Rows[i][0].ToString() + "' order by gy")
if (d.ds != null)
{
for (int j = 0 j < d.ds.Tables[0].Rows.Count j++)
{
treeView1.Nodes[i].Nodes.Add(d.ds.Tables[0].Rows[j][0].ToString())
d.linkSQL("Select Distinct gw from c_gy where bm='" + s.ds.Tables[0].Rows[i][0].ToString() + "' and gy='" + d.ds.Tables[0].Rows[j][0].ToString() + "' and gw<>'' order by gw")
if (e.ds != null)
{
for (int k = 0 k < e.ds.Tables[0].Rows.Count k++)
{
treeView1.Nodes[i].Nodes[j].Nodes.Add(e.ds.Tables[0].Rows[k][0].ToString())
}
}
}
}
}
}
给treeView1加了三级目录
这段例子看看
一句话来说:
pNode.getAttribute("Text")
<script language="javascript">function CheckOne()
{
var cIndex=TreeView1.clickedNodeIndex
var tmp=cIndex.split(".")
if (tmp.length==2) //代表都是第2层节点
{
var pNode=TreeView1.getTreeNode(cIndex)
var parentNode=pNode.getParent()
var NodeArray =new Array()
NodeArray=parentNode.getChildren()
for(var i=0i<NodeArray.lengthi++)
{
var cNode=NodeArray[i]
cNode.setAttribute('Checked','false')
if (cNode.getAttribute("Text")==pNode.getAttribute("Text"))
{
cNode.setAttribute('Checked','true')
document.all("Hidden1").value=cNode.getAttribute("Text")
}
}
}
}
</script>
描述一下需求:
加入有3个第一层的节点,然后这个三个第一层的节点下面都有3到5个不等的子节点。在每个第一层下面的子节点要单选一个,提交的时候点击另外的一个Button就可以了。上次你做的Demo,可以实现这个功能了,但是如果用户直接在CheckBOx而不是点节点的话,还是可以多选。后来我处理为不显示CheckBOx,点击后才出现CheckBOx,这样避免用户直接点CheckBox而出现在一个父节点下面选两个的情况。但老板要求必须全部都有CheckBox,并且点CheckBOx和点节点需要有同样的效果,所有我一直想法当用户点节点前面的CheckBox,也相当于点节点的效果,就是能在客户端触发一下Click。
<DIV style="FONT-SIZE: 12px Z-INDEX: 101 LEFT: 8px POSITION: absolute TOP: 8px" ms_positioning="text2D"><FONT face="Times New Roman">再详细的描述一下需求吧:<BR>加入有3个第一层的节点,然后这个三个第一层的节点下面都有3到5个不等的子节点。在每个第一层下面的子节点要单选一个,提交的时候点击另外的一个Button就可以了。上次你做的Demo,可以实现这个功能了,但是如果用户直接在CheckBOx而不是点节点的话,还是可以多选。后来我处理为不显示CheckBOx,点击后才出现CheckBOx,这样避免用户直接点CheckBox而出现在一个父节点下面选两个的情况。但老板要求必须全部都有CheckBox,并且点CheckBOx和点节点需要有同样的效果,所有我一直想法当用户点节点前面的CheckBox,也相当于点节点的效果,就是能在客户端触发一下Click。</FONT><BR>
<BR>
</DIV>
<iewc:TreeView id="TreeView1" style="Z-INDEX: 102 LEFT: 8px POSITION: absolute TOP: 136px" runat="server">
<iewc:TreeNode Text="Node0" Expanded="True">
<iewc:TreeNode CheckBox="True" Text="Node3"></iewc:TreeNode>
<iewc:TreeNode CheckBox="True" Text="Node4"></iewc:TreeNode>
<iewc:TreeNode CheckBox="True" Text="Node5"></iewc:TreeNode>
</iewc:TreeNode>
<iewc:TreeNode Text="Node1">
<iewc:TreeNode Text="Node6"></iewc:TreeNode>
<iewc:TreeNode Text="Node7"></iewc:TreeNode>
<iewc:TreeNode Text="Node8"></iewc:TreeNode>
</iewc:TreeNode>
<iewc:TreeNode Text="Node2">
<iewc:TreeNode Text="Node9"></iewc:TreeNode>
<iewc:TreeNode Text="Node10"></iewc:TreeNode>
<iewc:TreeNode Text="Node11"></iewc:TreeNode>
</iewc:TreeNode>
</iewc:TreeView><INPUT id="Hidden1" style="Z-INDEX: 103 LEFT: 24px POSITION: absolute TOP: 296px" type="hidden"
name="Hidden1" runat="server">
<asp:Button id="Button1" style="Z-INDEX: 104 LEFT: 24px POSITION: absolute TOP: 440px" runat="server"
Text="Submit"></asp:Button>
<asp:Label id="Label1" style="Z-INDEX: 105 LEFT: 96px POSITION: absolute TOP: 448px" runat="server"
Width="280px" ForeColor="Red" Font-Size="12px"></asp:Label>
Imports Microsoft.Web.UI.WebControls
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
TreeView1.Attributes.Add("oncheck", "javascript:CheckOne()")
TreeView1.Attributes.Add("onclick", "javascript:CheckOne()")
Dim tnode As TreeNode
For Each tnode In TreeView1.Nodes(0).Nodes
If tnode.Text = Hidden1.Value.Trim() Then
tnode.Checked = True
Else
tnode.Checked = False
End If
Next
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Label1.Text = "您选择的节点为:" + Hidden1.Value
End Sub
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)