Teleriks RadTreeView 控件上的 AppendDataBoundItems 属性允许您在静态值旁边绑定数据。
所以你的树可能看起来像
- 静态项目 A
- 静态项目 B
- 静态项目 C
- 数据绑定项目 A
- 数据绑定项目 B
- 数据绑定项目 C
但是我希望将所有绑定值都放在特定节点下,例如
- 静态项目 A
- 静态项目 B
- 静态项目 C
- 数据绑定项目 A
- 数据绑定项目 B
- 数据绑定项目 C
我确实意识到我可以操纵数据来实现这种效果,但我不习惯将 UI 代码移动到我的存储过程中。
还有其他方法吗?
Teleriks RadTreeView 控件上的 AppendDataBoundItems 属性允许您在静态值旁边绑定数据。
所以你的树可能看起来像
但是我希望将所有绑定值都放在特定节点下,例如
我确实意识到我可以操纵数据来实现这种效果,但我不习惯将 UI 代码移动到我的存储过程中。
还有其他方法吗?
我会让存储的过程将您的数据返回到您将绑定到树视图的数据集中。取回数据集后,我将处理数据集中保存的数据并将修改后的数据集绑定到树视图。存储过程仍在返回您的数据绑定数据,然后您正在扮演中间人。
我开始认为这是不可能的,所以我自己添加了这些项目。
为了将来参考其他人寻找如何做到这一点,这里是手动方式。
默认2.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()));
}
}
}
}
}