用户控件中的隐藏字段无法在客户端访问它

时间:2012-05-01 07:27:23

标签: javascript asp.net

我在用户控件中有一个隐藏字段。在运行时,我将隐藏字段ClientId分配给锚标记,如下所示:

aClickSort1.HRef = string.Format("javascript:SortImage({0},{1});", divArrowUp1.ClientID, hiddenSort1.ClientID);

问题是,当我尝试在客户端代码中获取隐藏字段ClientId时,它是未定义的。

如何在客户端代码上访问它?

聚苯乙烯。 HiddenField位于用户控件

关心Örvar

4 个答案:

答案 0 :(得分:0)

当您将Visible="false"设置为服务器端控件时,它将不会被发送到客户端。

相反,通过CSS设置style="display: none;"甚至更好,然后它将被发送到浏览器并仍然被隐藏。

答案 1 :(得分:0)

似乎原因是不可见容器。如果你有类似的东西:

<asp:panel id="panel1" runat="server" Visible="false">
    <asp:hiddenfield id="hiddenfield1 runat="server" value="123"/>
</asp:panel>

您无法访问panel1中的内容,因为没有为具有visible="false"属性的服务器端控件呈现内容。

您可以将div设置为style="display:none;",或者将hiddenfield留在non-visible容器之外,因为它无论如何都不可见。

答案 2 :(得分:0)

您需要将hiddenSort1的ClientIdMode设置为Static。

像这样:

 <asp:HiddenField ID="hiddenSort1" runat="server" ClientIDMode="Static" />

来自javascript:

var hiddenSort1 = document.getElementById('hiddenSort1');

答案 3 :(得分:0)

如果我错了,请纠正我,但不是Id生成的,如果你在用户控件中有隐藏字段,它将获得Id:

myUserControlName$myHiddenFieldId 

相关问题