首页 新闻 会员 周边 捐助

Blazor Server + Ant Design 问题

0
[待解决问题]

实现界面:

问题描述:
1.背景色无法显示。
2.点击事件未有反应。
逻辑:仪表板显示数值,通过多字段联合统计Linq实现,点击数据时,下面的Table则会通过获取的值去筛选更新Table显示。
当前代码:
<PageHeader Title="群组状态仪表板" Class="layout-background" />
<Row Class="form-background">
<Col Span="5">
<Statistic TValue="int" Title="运行数">
<span class="Value1" @onclick="() => HandleValueClick(RunningCount)">@RunningCount</span>
</Statistic>
</Col>
<Col Span="5">
<Statistic TValue="int" Title="警告数">
<span class="Value2" @onclick="() => HandleValueClick(WarningCount)">@WarningCount</span>
</Statistic>
</Col>
<Col Span="5">
<Statistic TValue="int" Title="闲置数">
<span class="Value3" @onclick="() => HandleValueClick(IdleCount)">@IdleCount</span>
</Statistic>
</Col>
<Col Span="5">
<Statistic TValue="int" Title="异常数">
<span class="Value4" @onclick="() => HandleValueClick(ExceptionCount)">@ExceptionCount</span>
</Statistic>
</Col>
<Col Span="4">
<Statistic TValue="int" Title="总 数">
<span class="Value5" @onclick="() => HandleValueClick(TotalCount)">@TotalCount</span>
</Statistic>
</Col>
</Row>

<style>

.Value1 {
    background-color: green;
    margin-left: 2px;
    padding: 4px 4px;
    border-radius: 4px;
    cursor: pointer;
}

.Value2 {
    background-color: orange;
    margin-left: 2px;
    padding: 4px 4px;
    border-radius: 4px;
    cursor: pointer;
}

.Value3 {
    background-color: lightgrey;
    margin-left: 2px;
    padding: 4px 4px;
    border-radius: 4px;
    cursor: pointer;
}

.Value4 {
    background-color: red;
    margin-left: 2px;
    padding: 4px 4px;
    border-radius: 4px;
    cursor: pointer;
}

.Value5 {
    background-color: lightskyblue;
    margin-left: 2px;
    padding: 4px 4px;
    border-radius: 4px;
    cursor: pointer;
}

.layout-background, .form-background {
    background-color: #f5f5f5;
    width: 300px;
}

.layout-background {
    text-align: center; /* 文本居中 */
    margin: 0; /* 移除默认的边距 */
    padding-left: 75px; /* 根据需要添加内边距 */
}

.form-background {
    margin-top: 0; /* 确保没有上外边距,以免与 PageHeader 重叠 */
    padding-top: -10px; /* 根据需要添加内边距 */
}

</style>

@code {
//权限类定义
DataPrivilege? dataPrivilege;
string sSQL;
//Log类
LoggerClass logger;

public int RunningCount { get; set; } = 1;
public int WarningCount { get; set; } = 0;
public int IdleCount { get; set; } = 0;
public int ExceptionCount { get; set; } = 0;
public int TotalCount { get; set; } = 0;

public int TableScrollY { get; set; }
int iHideColums = 0;
public List<Dictionary<string, object>> lsTableSource { get; set; }


//界面初始化
protected override Task OnInitializedAsync()
{
    try
    {
        dataPrivilege = new DataPrivilege(_dbContext);
        //初始化Log类
        logger = new LoggerClass(_loggerFactory, _navigation.Uri);
    }
    catch (Exception ex)
    {
        logger.LogError(ex, "OnInitializedAsync Error");
    }
    return base.OnInitializedAsync();
}

// 点击事件处理器
public void HandleValueClick(int value)
{
     RunningCount = value;
    // 这里可以添加代码来处理点击事件,比如弹出一个通知或者发送一个事件到父组件
    Console.WriteLine($"Value clicked: {value}");
}

}
当前效果图:

搜索页的主页 搜索页 | 菜鸟二级 | 园豆:202
提问于:2024-04-22 16:29
< >
分享
所有回答(1)
0

首先,确保你的Blazor组件和Ant Design样式是正确加载的。然后,检查以下可能导致你遇到的问题的原因:

背景色无法显示:
确保你的样式表(CSS)文件已经被正确引入到你的Blazor组件中,并且路径设置正确。
检查浏览器的开发者工具(通常是按F12键打开),查看样式是否被正确应用。如果样式被覆盖或者被其他样式所影响,可能导致背景色无法显示。
点击事件未有反应:
确保你的 @onclick 事件处理函数 HandleValueClick 被正确绑定到对应的HTML元素上。你可以在点击事件处理函数中添加一些调试代码,例如使用 Console.WriteLine() 来确认点击事件是否被正确触发。
检查浏览器的开发者工具中的控制台是否有任何报错信息,可能会提示你事件绑定的问题或者其他JS错误。
检查数据绑定:
确保 RunningCount、WarningCount、IdleCount、ExceptionCount 和 TotalCount 这些属性的值确实被正确设置,并且数据绑定到了相应的HTML元素上。
在点击事件处理函数中,你可以通过打印日志或者调试器来确认这些属性的值是否被正确设置。
排除逻辑错误:
仔细检查你的代码逻辑,确保没有其他地方重置了这些属性的值,导致点击事件处理函数中的赋值操作无效。
如果以上步骤都检查过了,但问题仍然存在,那可能需要进一步检查你的代码或者提供更多的信息以便我们进行更深入的分析和帮助。

Technologyforgood | 园豆:7535 (大侠五级) | 2024-04-22 22:06

感谢您的回复,目前已经找到问题所在并解决,是元素区别都在一行一列位置中导致颜色未能渲染,点击事件也是由于元素先后顺序导致无法初始化赋值和点击。

支持(0) 反对(0) 搜索页 | 园豆:202 (菜鸟二级) | 2024-04-23 08:45
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册