我在用户控件中有一个隐藏字段。在运行时,我将隐藏字段 ClientId 分配给这样的锚标记:
aClickSort1.HRef = string.Format("javascript:SortImage({0},{1});", divArrowUp1.ClientID, hiddenSort1.ClientID);
问题是,当我尝试在客户端代码中获取隐藏字段 ClientId 时,它是未定义的。
如何在客户端代码上访问它?
附言。HiddenField 位于用户控件中
问候奥瓦尔
我在用户控件中有一个隐藏字段。在运行时,我将隐藏字段 ClientId 分配给这样的锚标记:
aClickSort1.HRef = string.Format("javascript:SortImage({0},{1});", divArrowUp1.ClientID, hiddenSort1.ClientID);
问题是,当我尝试在客户端代码中获取隐藏字段 ClientId 时,它是未定义的。
如何在客户端代码上访问它?
附言。HiddenField 位于用户控件中
问候奥瓦尔
如果我错了,请纠正我,但不是生成的 ID,如果您在用户控件中有隐藏字段,它将获得以下 ID:
myUserControlName$myHiddenFieldId
?
当您设置Visible="false"为服务器端控制时,它根本不会发送到客户端。
相反,style="display: none;"通过 CSS 设置甚至更好,然后它将被发送到浏览器并且仍然被隐藏。
似乎原因是不可见的容器。如果你有类似的东西:
<asp:panel id="panel1" runat="server" Visible="false">
<asp:hiddenfield id="hiddenfield1 runat="server" value="123"/>
</asp:panel>
您无法访问其中的内容,因为不会为具有属性panel1的服务器端控件呈现内容。visible="false"
您可以将其设置为divwithstyle="display:none;"或将其留hiddenfield在non-visible容器之外,因为它无论如何都不可见。
您需要将 hiddenSort1 的 ClientIdMode 设置为 Static。
像这样:
<asp:HiddenField ID="hiddenSort1" runat="server" ClientIDMode="Static" />
来自 javascript:
var hiddenSort1 = document.getElementById('hiddenSort1');