0

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

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

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

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

附言。HiddenField 位于用户控件中

问候奥瓦尔

4

4 回答 4

0

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

myUserControlName$myHiddenFieldId 

?

于 2012-10-11T07:13:04.443 回答
0

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

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

于 2012-05-01T07:31:43.693 回答
0

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

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

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

您可以将其设置为divwithstyle="display:none;"或将其留hiddenfieldnon-visible容器之外,因为它无论如何都不可见。

于 2012-05-01T07:32:08.963 回答
0

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

像这样:

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

来自 javascript:

var hiddenSort1 = document.getElementById('hiddenSort1');
于 2012-05-01T07:34:47.540 回答