c# - 获取 ASP.NET GridView 单元格值并在 JQuery 进度条中显示

标签 c# jquery asp.net gridview

我有一个从 SQL Server 数据库填充的 ASP.NET GridView。这工作正常。我的代码背后使用的是 C#。

GridView 中的一列包含一个 JQuery 进度条,另一列包含一些响应。请看下图:

enter image description here

如何获取响应计数列的每个值并在对应的 JQuery 进度条的每一行中显示该值?

我的 JQuery 进度条目前是静态的,它是这样生成的:

<asp:DataList runat="server" id="listResponses" DataKeyField="QuestionID" OnItemDataBound="listResponses_ItemDataBound" Width="100%">
    <ItemTemplate>
        <div class="question_header">
            <p><strong><asp:Label ID="lblOrder" runat="server" Text='<%# Container.ItemIndex  + 1 %>'></asp:Label>. <%# DataBinder.Eval(Container.DataItem, "QuestionText") %></strong></p>
        </div> <!-- end question_header -->
        <asp:GridView runat="server" ID="gridResponses" DataKeyNames="AnswerID" AutoGenerateColumns="False" CssClass="responses" AlternatingRowStyle-BackColor="#f3f4f8">
            <Columns>
                <asp:BoundField DataField="AnswerTitle" ItemStyle-Width="250px"></asp:BoundField>
                <asp:TemplateField>
                    <ItemTemplate>
                        <div class="pbcontainer">
                            <div class="progressbar"></div>
                        </div>
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:BoundField DataField="Responses" HeaderText="Response Count" HeaderStyle-Width="100px" />
            </Columns>
        </asp:GridView>   
    </ItemTemplate> 
</asp:DataList>

使用 JQuery UI 网站上提供的以下脚本:

 $(function () {

        // Progressbar
        $(".progressbar").progressbar({
            value: 40
        });
        //hover states on the static widgets
        $('#dialog_link, ul#icons li').hover(
            function () { $(this).addClass('ui-state-hover'); },
            function () { $(this).removeClass('ui-state-hover'); }
        );

   });

我不确定该去哪里,所以我们将不胜感激。

最佳答案

在包含进度条的 div 中,添加一个隐藏字段,如下所示:

<div class="pbcontainer">
    <!-- This is the new line in markup. Replace NumOfResponses with your value field -->
    <asp:HiddenField ID="hiddenValue" runat="server" Value='<%# Eval("NumOfResponses") %>' />

    <div class="progressbar"></div>
</div

现在每个包含进度条的 div 还包含一个隐藏字段,其中包含更新进度条所需的值。

在 jQuery 中,您可以将数据列表中的所有进度条设置为等于它们各自的值。示例:

编辑:(修改了以下 jQuery 代码)

$('.pbcontainer').each(function() {
    // We assume that there is only 1 hidden field under 'pbcontainer'
    var valueFromHiddenField = $('input[type=hidden]', this).val();

    $('.progressbar', this).progressbar({ value: parseInt(valueFromHiddenField) });
});

所有这些都只是我的想法,没有任何真正的代码验证.. 但这将是想法:

  1. 从 ASP.NET 获取值到每行进度条附近的隐藏字段中
  2. 使用 HTML 隐藏字段中的值更新 jQuery 中的每个进度条。

希望对你有帮助

关于c# - 获取 ASP.NET GridView 单元格值并在 JQuery 进度条中显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9793782/

相关文章:

javascript - 将 HTML 数据导出到 excel

php - 在 PHP 和 ASP.net 中发布

c# - 通用 Windows 平台和 SignalR(无法加载文件或程序集“System.Net,版本 = 2.0.5.0”)

c# - .NET Core 3.1 控制台应用作为 Windows 服务

jquery - 自动打开fancyBox?

javascript - 自定义 jquery.datatables 插件以使用正则表达式对两列进行过滤

c# - 跨多个应用程序和共享库 (.net) 处理多种语言

javascript - 颜色框和 ListView

c# - 在 System.web.security 中找不到角色提供者?

c# - List<object> 内存开销