ASP.NET中TreeView的使用,前景色无法设置,点击事件无法响应,点击后总闪烁,怎么解决?谢谢!

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ASP.NET中TreeView的使用,前景色无法设置,点击事件无法响应,点击后总闪烁,怎么解决?谢谢!相关的知识,希望对你有一定的参考价值。

<Nodes>
<asp:TreeNode Text="首页" Value="首页" NavigateUrl="~/系统首页.aspx"></asp:TreeNode>
<asp:TreeNode Text="用户资源管理" Value="用户资源管理">
<asp:TreeNode Text="用户" Value="用户" NavigateUrl="~/信息中心内容页.aspx"></asp:TreeNode>
<asp:TreeNode Text="组织机构管理" Value="组织机构管理" NavigateUrl="~/组织机构管理中间导航页.aspx"></asp:TreeNode>

C# code

protectedvoid TreeView1_SelectedNodeChanged(object sender, EventArgs e) TreeView1.SelectedNodeStyle.ForeColor = Color.Blue;

本人发现奇怪的现象无法解决,注意我是在母版页中实现功能的。问题是:
其一,做了NavigateUrl="~/****.aspx"后的节点,TreeView1_SelectedNodeChanged这个事件进不去,不可改变颜色;
其二,我接下来不用这个事件,PageLoad里面直接写 TreeView1.SelectedNodeStyle.ForeColor = Color.Blue;这句语句,发现无论点击什么节点,这句话都执行的,但是有NavigateUrl的节点,因为跳转,节点不变蓝。
其三,我觉得应该是treeview每次点击都要刷新页面的结果,会跳一下,不知能否解决。

pageload是每次刷新都会执行

SelectedNodeStyle这个属性直接 <asp:TreeNode >里设置不就行了 改改颜色试试下面的代码
<asp:TreeView> <SelectedNodeStyle ForeColor="#DBDBDB" /></asp:TreeView>反正点击后的背景色是这么设置的

实在不行NodeClick 用这个事件试试追问



运行后,背景色可以,前景色没反应。在Page_Load()中也是,背景色可以,前景色没反应。是不是很奇怪。

追答

纳尼。。。那多么伤心。。下面这个试试呢。。
TreeView1.Nodes(i).BackColor = &H400000
TreeView1.Nodes(i).ForeColor = vbGreen

追问

还是不行啊。谢谢。继续等待,继续尝试。

参考技术A pageload是每次刷新都会执行

在 Swift 中根据 API 调用设置前景色

【中文标题】在 Swift 中根据 API 调用设置前景色【英文标题】:Set foreground colour based on API call in Swift 【发布时间】:2021-11-12 21:16:37 【问题描述】:

我想呈现我构建的 API 的结果列表,并作为快速视觉参考供人们查看状态是红色、琥珀色还是绿色。

我可以将信息作为字符串或 int 发送回,我并不十分了解如何使用,但我无法在我使用的 sf 符号上更改前景色,即 circle.fill

我不确定将数据输入 SwiftUI 的最佳方式是什么,因为我不能只为我的颜色名称声明一个字符串。

目前它来自一个变量名,它是我的结构的一部分,但我需要一种方法让它理想地成为一个字符串或一个 int。有没有办法快速将颜色传递给修饰符?

struct Insight: Identifiable 
    let id = UUID()
    let title: String
    let description: String
    let statusColor: Color
    let header: String
    



let red: Color = Color(.red)
let yellow: Color = Color(.yellow)
let green: Color = Color(.green)


struct InsightList 
    
    static let topTenInsights = [
        Insight(title: "Some text",
                 statusColor: red,
                 header: "Header"),
        
        Finsight(title: "Some text",
                 statusColor: red,
                 header: "Income") 
]
 
var insights: [insight] = insightList.topTenInsights

struct Landing: View 
    let user = Auth.auth().currentUser
    let red: Color = Color(.red)
    let yellow: Color = Color(.yellow)
    let green: Color = Color(.green)
    var body: some View 
        List(insights, id: \.id)  userinsight in
            HStack 
                Image(systemName: "circle.fill").foregroundStyle(insight.statusColor)
                    .scaledToFit()
                    .padding()
                    .shadow(radius: 0.9)

                VStack(alignment: .leading, spacing: 8) 
                    Text("Category: \(insight.header)")
                        .fontWeight(.semibold)
                        .lineLimit(2)
                        .minimumScaleFactor(0.5)
                    Text(insight.title)
                        .fontWeight(.light)
                        .lineLimit(2)
                        .minimumScaleFactor(0.9)
                .padding(13)
                    .shadow(radius: 0.3)
            
        
        
    

【问题讨论】:

【参考方案1】:

你可以做这样简单的事情:

func getStatusColor(_ status: Int) -> Color 
    switch status 
     case 0: return Color.red
     case 1: return Color.yellow
     case 2: return Color.green
     default: return Color.blue
    


Image(systemName: "circle.fill")
.foregroundStyle(getStatusColor(statusValue))
.....

【讨论】:

非常感谢这个作品

以上是关于ASP.NET中TreeView的使用,前景色无法设置,点击事件无法响应,点击后总闪烁,怎么解决?谢谢!的主要内容,如果未能解决你的问题,请参考以下文章

c#语言asp.net实现treeview控件读数据库动态生成树的代码

ASP.NET中使用TreeView控件

回发前的 ASP.NET TreeView javascript

哪个 jQuery/css 菜单库用于使用 ASP.NET TreeView 或菜单控件

转:asp.net TreeView CheckChanged 事件浅谈

ASP.NET中,点TREE的节点,无刷新