如何在c#中从Treeview中获取复选框选中值?

如何在c#中从Treeview中获取复选框选中值?,c#,asp.net,oracle,treeview,C#,Asp.net,Oracle,Treeview,我想从Treeview中获取复选框选中值 我将oracle数据库中的数据绑定到Treeview上 代码: 在下面的按钮单击事件中,我尝试了,但不起作用 protected void btnGet_Click(object sender, EventArgs e) { DataSet ds1= (DataSet)ViewState["ds"]; foreach (DataRow dr in ds1.Tables[0].Rows) {

我想从Treeview中获取复选框选中值

我将oracle数据库中的数据绑定到Treeview上

代码:

在下面的按钮单击事件中,我尝试了,但不起作用

    protected void btnGet_Click(object sender, EventArgs e)
    {
        DataSet ds1= (DataSet)ViewState["ds"];
        foreach (DataRow dr in ds1.Tables[0].Rows)
        { 
          TreeNode tn = new TreeNode();
          if (tn.Checked == true)
          {
              Response.Write(tn.Text);

          }
          tn.Text = dr["ActivityName"].ToString(); 
          TreeView1.Nodes.Add(tn); 
        } 
     }
}
在下图中,如果我选中HR Activity1、Developer Activity3等复选框

我想得到那个值


有什么想法吗?提前感谢

获取所有选定树节点集合的简单方法是:

private List<TreeNode> AllCheckedNodes = new List<TreeNode>();

private void GetAllCheckedNodes()
{
    for (int i = 0; i < TreeView1.CheckedNodes.Count; i++)
    {
        AllCheckedNodes.Add(TreeView1.CheckedNodes[i]);
    }
}
private List AllCheckedNodes=new List();
私有void GetAllCheckedNodes()
{
对于(int i=0;i
您的btnGet\u Click方法不正确–您在该方法中创建了新的TreeView对象,而该对象不是页面上存在的对象

您需要做的是为SelectedNodeChanged事件创建事件处理程序

这里有一行应该添加到fill_Tree2()方法中

另一个错误是页面加载方法是这样写的。这将在每次重新加载页面时加载您的treview(即使在回发时)。你想要的是这样的东西

protected void Page_Load(object sender, EventArgs e)
{
    if (!Page.IsPostBack)
    {
       fill_Tree2();
    }
}

请解释你的模式。
private void FillTree()
{
    Treeview1.SelectedNodeChanged += Treeview1_SelectedNodeChanged;

}

protected void Treeview1_SelectedNodeChanged(object sender, EventArgs e)
{
   string value = Treeview1.SelectedNode.Value;
}
protected void Page_Load(object sender, EventArgs e)
{
    if (!Page.IsPostBack)
    {
       fill_Tree2();
    }
}