http://www.lidorsystems.com/support/articles/treeview-threestate.aspx
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script type="text/javascript">
function myPostBack() {
var o = window.event.srcElement;
if (o.tagName == "INPUT" && o.type == "checkbox") {
__doPostBack("", "");
}
}
</script>
</head>
<body>
<form id="form1" runat="server">
<table>
<tr>
<td colspan="2">
<asp:DropDownList ID="DropDownList1" runat="server" OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged" AutoPostBack="true">
<asp:ListItem Text="a" Value="a" />
<asp:ListItem Text="b" Value="b" />
<asp:ListItem Text="c" Value="c" />
<asp:ListItem Text="d" Value="d" />
<asp:ListItem Text="e" Value="e" />
</asp:DropDownList>
</td>
</tr>
<tr>
<td>
<asp:ListBox ID="ListBox1" runat="server" SelectionMode="Multiple"></asp:ListBox>
</td>
<td>
<asp:Button ID="Button1" runat="server" Text="Remove" OnClick="Button1_Click" />
</td>
</tr>
<tr>
<td colspan="2">
<asp:TreeView ID="TreeView1" runat="server" OnClick="myPostBack();" ShowCheckBoxes="All" OnTreeNodeCheckChanged="TreeView1_TreeNodeCheckChanged">
</asp:TreeView>
</td>
</tr>
</table>
</form>
</body>
</html>
public partial class listbox : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
TreeView1.Nodes.Add(new TreeNode("Fruits", "Fruits"));
TreeView1.Nodes[0].ChildNodes.Add(new TreeNode("Mango", "Mango"));
TreeView1.Nodes[0].ChildNodes.Add(new TreeNode("Apple", "Apple"));
TreeView1.Nodes[0].ChildNodes.Add(new TreeNode("Pineapple", "Pineapple"));
TreeView1.Nodes[0].ChildNodes.Add(new TreeNode("Orange", "Orange"));
TreeView1.Nodes[0].ChildNodes.Add(new TreeNode("Grapes", "Grapes"));
TreeView1.Nodes.Add(new TreeNode("Vegetables", "Vegetables"));
TreeView1.Nodes[1].ChildNodes.Add(new TreeNode("Carrot", "Carrot"));
TreeView1.Nodes[1].ChildNodes.Add(new TreeNode("Cauliflower", "Cauliflower"));
TreeView1.Nodes[1].ChildNodes.Add(new TreeNode("Potato", "Potato"));
TreeView1.Nodes[1].ChildNodes.Add(new TreeNode("Tomato", "Tomato"));
TreeView1.Nodes[1].ChildNodes.Add(new TreeNode("Onion", "Onion"));
}
}
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
ListBox1.Items.Add(DropDownList1.SelectedValue);
}
protected void Button1_Click(object sender, EventArgs e)
{
List<ListItem> deletedItems = new List<ListItem>();
foreach (ListItem item in ListBox1.Items)
{
if (item.Selected)
{
deletedItems.Add(item);
}
}
if(deletedItems.Count>0)
{
foreach (ListItem item in deletedItems)
{
ListBox1.Items.Remove(item);
}
}
else
{
Response.Write("Please select an Item to delete");
}
}
protected void TreeView1_TreeNodeCheckChanged(object sender, TreeNodeEventArgs e)
{
if (e != null && e.Node != null)
{
if (e.Node.ChildNodes.Count > 0)
{
CheckTreeNodeRecursive(e.Node, e.Node.Checked);
}
}
}
private void CheckTreeNodeRecursive(TreeNode parent, bool fCheck)
{
foreach (TreeNode child in parent.ChildNodes)
{
if (child.Checked != fCheck)
{
child.Checked = fCheck;
}
if (child.ChildNodes.Count > 0)
{
CheckTreeNodeRecursive(child, fCheck);
}
}
}
}
No comments:
Post a Comment