You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Asp.net中如何将后台Label值传递给进度条的data-percent属性?

解决进度条data-percent属性赋值时的HtmlGenericControl错误

嘿,我来帮你快速搞定这个问题!你遇到的错误本质上有两个原因:一是你在data-percent里嵌套ASP.NET Label的写法不对,导致渲染后的HTML不符合进度条插件的预期;二是后台代码里可能误写了text(C#是大小写敏感的,而且HtmlGenericControl根本没有这个属性)。

给你两种简单的解决办法,选哪种都能快速搞定:


方法一:直接绑定后台数值到data-percent(最简洁)

把前台代码里嵌套在data-percent里的Label去掉,改用ASP.NET的数据绑定表达式直接输出数值:

<div class="skillbar clearfix " data-percent='<%# YourProgressValue.ToString() + "%" %>'>
    <div class="skillbar-title" style="background: #c0392b;"><span>TOPLAM</span></div>
    <div class="skillbar-bar" style="background: #e74c3c;"></div>
    <div class="skill-bar-percent">
        <asp:Label ID="lblBlogAdet" runat="server" Font-Bold="true" ForeColor="navy" Font-Size="Medium"></asp:Label>
    </div>
</div>

然后在后台的Page_Load(或者你绑定数据的方法里),给后台变量赋值并调用DataBind():

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        // 这里替换成你实际获取百分比的逻辑,比如从数据库读取
        int YourProgressValue = 65; 
        // 别忘了调用DataBind来触发前台的绑定表达式
        this.DataBind();
    }
}

方法二:保留Label控件(如果需要复用这个值)

如果你还是想保留lblYuzde这个Label,那可以把data-percent绑定到Label的Text属性:

<div class="skillbar clearfix " data-percent='<%# lblYuzde.Text + "%" %>'>
    <div class="skillbar-title" style="background: #c0392b;"><span>TOPLAM</span></div>
    <div class="skillbar-bar" style="background: #e74c3c;"></div>
    <div class="skill-bar-percent">
        <asp:Label ID="lblBlogAdet" runat="server" Font-Bold="true" ForeColor="navy" Font-Size="Medium"></asp:Label>
    </div>
</div>
<asp:Label ID="lblYuzde" runat="server"></asp:Label>

后台代码里给Label赋值后同样要调用DataBind():

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        int progress = 65;
        lblYuzde.Text = progress.ToString();
        this.DataBind();
    }
}

为什么原来的写法会报错?

你之前在data-percent里嵌套<asp:Label>的做法,会让浏览器渲染出类似这样的HTML:

<div data-percent="<span id='lblYuzde'>65</span>%">...</div>

进度条插件根本识别不了这种带HTML标签的百分比值。另外,如果你后台代码里尝试用text去访问div控件的内容,那肯定会报错——HtmlGenericControl对应的内容属性是InnerText或InnerHtml,而且C#是大小写敏感的,没有小写的text属性。

内容的提问来源于stack exchange,提问作者Ali Akyıldırım

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 08:18:34