Как я могу добавитьDataBoundItems к определенному узлу, используя элемент управления Teleriks RadTreeView? - PullRequest
0 голосов
/ 16 сентября 2011

Свойство AppendDataBoundItems в элементе управления Teleriks RadTreeView позволяет связывать данные вместе со статическими значениями.

Так что ваше дерево может выглядеть как

  • Статический предмет A
  • Статический элемент B
  • Статический элемент C
  • Элемент с привязкой к данным A
  • Элемент с привязкой к данным B
  • Элемент с привязкой к данным C

Но я бы хотел, чтобы все мои связанные значения находились под конкретным узлом, например

  • Статический предмет A
  • Статический элемент B
  • Статический предмет C
    • Элемент с привязкой к данным A
    • Элемент с привязкой к данным B
    • Элемент с привязкой к данным C

Я понимаю, что могу управлять данными для достижения этого эффекта, но мне неудобно перемещать код пользовательского интерфейса в свой сохраненный процесс.

Есть ли другой способ?

Ответы [ 2 ]

1 голос
/ 16 сентября 2011

Я бы попросил сохраненный процесс вернуть ваши данные в набор данных, который вы собираетесь привязать к своему древовидному представлению. Как только вы вернете набор данных, я буду манипулировать данными, хранящимися в вашем наборе данных, и привязать измененный набор данных к вашему дереву. Хранимая процедура по-прежнему возвращает данные, привязанные к вашей базе данных, а затем вы играете «человек посередине».

0 голосов
/ 16 сентября 2011

Я начинаю думать, что это невозможно, поэтому я просто добавил предметы сам.

Для использования в будущем всем, кто ищет, как это сделать, вот ручной способ.

Default2.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default2.aspx.cs" Inherits="TelerikTreetoProc._Default2" %>
<%@ Register assembly="Telerik.Web.UI" namespace="Telerik.Web.UI" tagprefix="telerik" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:ScriptManager ID="scriptManager1" runat="server" />
        <telerik:RadTreeView ID="treeSideBarCommands" Runat="server">
            <Nodes>
                <telerik:RadTreeNode runat="server" Text="Static Item A" />
                <telerik:RadTreeNode runat="server" Text="Static Item B" />
                <telerik:RadTreeNode runat="server" Text="Static Item C"/>
            </Nodes>
        </telerik:RadTreeView>
    </div>
    </form>
</body>
</html>

А мой код файла

using System;
using System.Data;
using System.Data.SqlClient;
using System.Web.Configuration;
using Telerik.Web.UI;

namespace TelerikTreetoProc
{
    public partial class _Default2 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            string sql = "select EmployeeID, FirstName + LastName [name] from Employees";
            string connString = WebConfigurationManager.ConnectionStrings["NorthwindConnectionString"].ConnectionString;
            using(var cn = new SqlConnection(connString ))
            using(var cmd = new SqlCommand( sql, cn))
            {
                cn.Open();
                cmd.CommandType = CommandType.Text;
                SqlDataReader dr = cmd.ExecuteReader();
                RadTreeNode nd = treeSideBarCommands.Nodes[2];
                while (dr.Read())
                {
                    nd.Nodes.Add(new RadTreeNode(dr[1].ToString(), dr[0].ToString()));
                }
            }
        }
    }
}
...