2

如何将 C# 中的参数传递到部分,而不是使用不同的值对其进行硬编码。

<div class="property-container">
      <input class="progress-value" type="hidden" value="17" />           
        <div class="property-title">Test</div> 
        <div class="property-progress"></div>
    </div>    

    <div class="property-container">
        <input class="progress-value" type="hidden" value="32" />
        <div class="property-title">Test 2</div> 
        <div class="property-progress"></div>
    </div>    

    <div class="property-container">
        <input class="progress-value" type="hidden" value="24" />
        <div class="property-title">Test 3</div> 
        <div class="property-progress"></div>
    </div>    

        <script type="text/javascript" >/
            $(function () {
                // loop through each 'container'
                $(".property-container").each(function () {


                    // get the value that was rendered from the model
                    var progress = parseInt($(this).children(".progress-value").val());

                    // create the progress bar with the value
                    $(this).children(".property-progress").progressbar({ value: progress });

                });
            });

        </script>
4

4 回答 4

2

你可以使用这个:

 $(this).children(".property-progress").progressbar({ value: '<%= MyValue() %>'});

并在c#创建一个property

Public string MyValue
{
  get;set;
}

如果您打算根据服务器活动更新进度条 - 我建议您使用 Google SignalR。

于 2013-09-24T19:26:22.573 回答
2

从你的评论

<input class="progress-value" type="hidden" value="17" id="Test" /> 
In c# I tried, Test.Value = "20";

runat="server"如果您想访问代码隐藏中的隐藏字段,您应该有一个。

<input class="progress-value" runat="server" type="hidden" value="17" id="Test" /> 

 //& then in C# set it like this..

 Test.Value = "20";

在jQuery中,获取隐藏字段的值

$('.progress-value').val()
于 2013-09-24T19:32:49.550 回答
0

这实际上取决于您使用什么技术来输出代码。如果您使用的是 Razor,它将是:

<input value="@ObjectName.Value">
于 2013-09-24T19:36:26.600 回答
0

您只需要记住变量的设置位置以及代码的运行位置。C# 在服务器上运行,因此您不能直接设置 javascript 属性,而是需要设置 HTML 模板,以便在服务器对其进行插值时将正确的值发送到客户端。

换句话说,您将无法在服务器上设置进度条宽度,b/c 服务器将只能设置进度条的初始值。增加值将取决于客户。否则,您需要不断地将页面发布回服务器,这根本不是您想要的。

从服务器获取进度数据到客户端的最简单方法是设置一个返回 JSON 的 Web 服务,并使用 jquery 调用它。

以下是有关如何执行此操作的一些资源:

您应该能够使用 [WebMethod] 装饰您的 asp.net 类上的方法,使其可通过 jQuery 调用。

于 2013-09-24T19:35:03.640 回答