我在用户控件中有一个隐藏字段。在运行时,我将隐藏字段ClientId分配给锚标记,如下所示:
aClickSort1.HRef = string.Format("javascript:SortImage({0},{1});", divArrowUp1.ClientID, hiddenSort1.ClientID);
问题是,当我尝试在客户端代码中获取隐藏字段ClientId时,它是未定义的。
如何在客户端代码上访问它?
聚苯乙烯。 HiddenField位于用户控件
中关心Örvar
答案 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