TheChaseMan's Frenetic SoapBox

Always looking for better ways to do things...

The MultiView Control - ASP.NET 2.0

Here's yet another cool new ASP.NET control: MultiView. Basically you can have several content "areas" defined and which one shows is mutally exclusive. So I have a TreeView that changes the current View based on the selected node...

<table border="1">

    <tr>

        <td>

            <asp:TreeView Height="547px" ID="TreeView1" runat="server" ShowLines="True" OnSelectedNodeChanged="TreeView1_SelectedNodeChanged">

                <Nodes>

                    <asp:TreeNode Text="Car" Value="Car">

                        <asp:TreeNode Text="Part1" Value="Part1"></asp:TreeNode>

                        <asp:TreeNode Text="Part2" Value="Part2">

                            <asp:TreeNode Text="Subassembly" Value="Subassembly"></asp:TreeNode>

                        </asp:TreeNode>

                    </asp:TreeNode>

                </Nodes>

            </asp:TreeView>

        </td>

        <td>

            <asp:MultiView ID="MultiView1" runat="server">

                <asp:View ID="viewCar" runat="server">

                    view car

                </asp:View>

                <asp:View ID="viewPart1" runat="server">

                    view part1

                </asp:View>

            </asp:MultiView>

        </td>

    </tr>

</table>

 

In my code-behind, I don't worry about setting one view to visible and others to false. In fact, you can't. You have to call SetActiveView() and it will do this for you!

 

protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e)

{

      switch (this.TreeView1.SelectedNode.Value)

      {

            case "Car":

                  this.MultiView1.SetActiveView(viewCar);

                  break;

            case "Part1":

                  this.MultiView1.SetActiveView(viewPart1);

                  break;

      }

}


Pretty slick, huh? :-)
Digg!

posted on Wednesday, March 30, 2005 1:50 AM

Feedback

No comments posted yet.