我对ASP.NET 3.5 Treeview和Treenodes有疑问。我想构建一个支持多状态复选框的Treeivew。我实际上想要4个状态 - 检查,未检查,不确定(如三状态框 - 父级是三态,如果不是所有子项都被检查)和NotAppicable(此复选框将是X并且显示为灰色)。我已经阅读了如何通过使用Web用户控件(.ascx)添加自定义用户控件,但它似乎不能以覆盖TreeNode和TreeView的方式工作。我在.xml文件中显示静态数据,我非常喜欢将treeview绑定到数据源的功能。所以,如果可以的话,我宁愿继续使用树。
所以我想我有几个问题:
如何覆盖treeview或treenode,并将其添加到webform? (所以我仍然可以使用设计器?)我是否必须将它们构建为.dll并以此方式加载?或者我可以将.cs文件添加到我的项目中吗?
有没有人对如何更改treeNode以处理检查状态有任何想法?
有关如何将自定义图像用于不同检查状态的任何想法吗?
谢谢!
答案 0 :(得分:1)
我对第一个问题有一个答案 - 如何覆盖treeview或treenode,并将其添加到webform? (所以我仍然可以使用设计器?)我是否必须将它们构建为.dll并以此方式加载?或者我可以将.cs文件添加到我的项目中吗?
每个人都可能知道如何做到这一点,但这对我来说是新闻。将扩展类添加到命名空间中的App_Code文件夹:
namespace MyWebsiteControls
{
...
}
然后,在下面的web.config文件中包含对该命名空间的引用:
<pages/>
<controls>
<add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add tagPrefix="asp" namespace="System.Web.UI.WebControls" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add namespace="MyWebsiteControls" tagPrefix="MyWebsiteControls"/>
</controls>
</pages>"
然后在.aspx文件中调用您的控件:
<MyWebsiteControls:XTreeView ID="TreeView1" runat="server" DataSourceID="Checklist"
ShowCheckBoxes="All" CssClass="treeViewStyle">
</MyWebsiteControls:XTreeView>