vb.net中的Asp标签不捕获在javascript中修改的标签文本

Asp Label in vb.net not capturing label text modified in javascript

本文关键字:标签 javascript 修改 文本 中的 net Asp vb      更新时间:2023-09-26

我在vb.net中有以下标签:

<div style="height: 20px; vertical-align: text-bottom;">
        <div style="float: left; width: 86%; text-align: right">
            <b>Sub-Total</b> (a) through (e) above:  
        </div>
        <div style="float: right; padding-right: 10px">
            <asp:Label runat="server" ID="lblRateableEmployeesSubtotal" CssClass="lblRateableEmployeesSubtotalCls" Text="0"></asp:Label>
        </div>
</div>

我正在动态地调整这个值从一个javascript函数:

$('.lblRateableEmployeesSubtotalCls').text(numberWithCommas(subtotal));

当某些文本框被改变时,这个函数被调用。numberwithcomma只是将文本格式化为数字格式(x,xxx)。

当我试图将这些值保存在我的代码后面时,由于某种原因标签的文本仍然显示为"0"!尽管它已经在屏幕上清楚地更新了。

If lblRateableEmployeesSubtotal.Text > "" Then .TotalEmployees = CInt(lblRateableEmployeesSubtotal.Text)

知道为什么会这样吗?

ASP在执行回发时不需要包含这些信息,特别是因为标签的整个思想不是接受来自客户机的输入。当发布回ASP不发送整个DOM;它只发送专门用于接收客户端输入的字段的信息。

在这种情况下,这里使用的适当工具是Hidden控件。添加一个asp:HiddenField控件到页面,设置控件的值在你的JavaScript代码(你也可以设置标签,当然),然后检查隐藏字段的值在服务器端

只有输入类型的控件被发送回服务器。在您的情况下,一个可能的解决方案是模拟具有只读平面样式TextBox控件的标签。

该jQuery函数只更改客户端的文本,服务器不知道任何关于页面的更改,直到您发送POST请求,但在该请求中默认只发送INPUT元素的值。

如果您想在客户端上使用javascript更改服务器上的某些内容,则需要寻找AJAX技术。如果没有,请考虑从服务器上的输入控件(如文本框)获取值,或者创建一些隐藏字段,这些字段将与您的标签同时更新。

对不起,我的英语不好。