通过jquery设置属性后面的代码

时间:2011-11-09 21:38:42

标签: jquery asp.net

是否可以使用jquery在页面类中设置属性的值?我知道只要该属性是公共的但似乎无法设置该值,就可以在jquery中获取该值。

这是后面代码中的属性。

Private inventory_item_id As String = ""

Public Property InventoryItemId() As String
    Get
        Return inventory_item_id
    End Get
    Set(ByVal value As String)
        inventory_item_id = value
    End Set
End Property

<%=Me.InventoryItemId %> = 'some value';无效

谢谢

3 个答案:

答案 0 :(得分:5)

首先,您应该知道<%=Me.InventoryItemId %>在呈现页面时替换实际值(在浏览器页面上查看源代码,您将看到id,例如1234,而不是对属性的引用) 。话虽这么说,您可以设置客户端隐藏字段的值,然后您可以在回发期间读取并使用它来设置您的属性。请注意,答案“否”在技术上是正确的 - 一旦页面被渲染,该属性就不再存在 - 但是在回发期间没有什么能阻止您再次设置它。

事实上,您可以将您的财产直接绑定到隐藏字段:

Public Property InventoryItemId() As String
    Get
        Return hdnInventoryItemId.Value
    End Get
    Set(ByVal value As String)
        hdnInventoryItemId.Value = value
    End Set
End Property

假设您定义了以下隐藏字段:

<asp:HiddenField ID="hdnInventoryItemId" runat="server"/>

最后,您的jQuery可以使用以下语法设置字段(但这只是众多方法中的一种,可以设置):

$('<%= hdnInventoryItemId.ClientID %>').val('some value');

答案 1 :(得分:5)

仅在页面加载并经历其页面生命周期时才存在该值后面的代码。现在,在加载页面时,您可以通过执行类似

之类的操作将值放入脚本中

var valueFromServer = <% Me.InventoryItemId %>;

但是,一旦页面加载,您就无法返回并更改该属性,因为它已不存在

答案 2 :(得分:0)

在JS / JQ更新后,您打算如何检索新值?如果您正在执行某种客户端重新计算,然后将值提交回服务器,则可以创建一个隐藏字段,如存储您的属性值。

然后,当用户提交您的页面(或回复,等等)时,您可以检查该隐藏字段的值并适当更新您的属性。