0

我有一个关于 ASP.NET 3.5 Treeview 和 Treenodes 的问题。我想构建一个支持多态复选框的 Treeivew。我实际上想要 4 个状态 - 已选中、未选中、不确定(如三态框 - 父级是三态,如果不是所有子级都被选中)和 NotAppicable(此复选框将是 X 并显示为灰色)。我已经阅读了如何通过使用 Web 用户控件 (.ascx) 添加自定义用户控件,但它似乎不适用于覆盖 TreeNode 和 TreeView。我在 .xml 文件中显示静态数据,我非常喜欢将树视图绑定到数据源的能力。所以,如果可以的话,我宁愿继续使用这棵树。

所以我想我有几个问题:

  1. 如何覆盖树视图或树节点,并将其添加到网络表单?(所以我仍然可以使用设计器?)我是否必须将它们构建成 .dll 并以这种方式加载?或者我可以将 .cs 文件添加到我的项目中吗?

  2. 有人对如何更改 treeNode 以处理检查状态有任何想法吗?

  3. 关于如何将我的自定义图像用于不同检查状态的任何想法?

谢谢!

4

1 回答 1

1

我有第一个问题的答案 - 如何覆盖树视图或树节点,并将其添加到网络表单?(所以我仍然可以使用设计器?)我是否必须将它们构建成 .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>
于 2010-01-06T21:48:54.057 回答