3

在我之前的问题的后续行动中,我想从子页面代码隐藏中获取隐藏输入字段的值。

我试过HtmlInputHidden hdnID = (HtmlInputHidden)Page.Master.FindControl("ctl00_hdnField");了,但我得到了一个“空”值。

在此处输入图像描述

母版页的一个片段是:

<head runat="server">
    <title>
        <asp:ContentPlaceHolder ID="TitleContent" runat="server"></asp:ContentPlaceHolder>
        <asp:Literal ID="Literal2" runat="server" Text=" : Logistics Management" />
    </title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

    <link href="~/css/styles.css" rel="stylesheet" type="text/css" />

    <asp:ContentPlaceHolder ID="ScriptCssContent" runat="server">
    </asp:ContentPlaceHolder>

</head>
<body>

<form id="form1" runat="server">
    ......
    ......
    ......
        <div id="container">
        ....
        ....
        ....
                <div id="content" style="z-index:0;">
                <asp:HiddenField ID="hdnField" runat="server" Value=""/>
                ....
                ....
                ....
                        <asp:ContentPlaceHolder ID="MainContent" runat="server">

                        </asp:ContentPlaceHolder>
            </div>
        </div>
</form>

在我的 Child aspx 页面上,我有这个 javascript 块:

window.onload = function() {
    var newDate = new Date();
    var hidField = document.getElementById("ctl00_hdnField");

    if (hidField != null)
        hidField.value = newDate.toLocaleString();
}

当我“添加手表”到

document.getElementById("ctl00_hdnField")

值是正确的。

问题:如何从代码隐藏中访问 hdnField 控件中的值?

4

4 回答 4

5

所以改变它从

HtmlInputHidden hdnID = (HtmlInputHidden)Page.Master.FindControl("ctl00_hdnField");

HiddenField hdnID = (HiddenField)Page.Master.FindControl("hdnField");

这只是一个铸造的事情 - 通知HtmlInputHidden更改为HiddenField. 您也不需要该ct100_部分 - 这只是 HTML 呈现的元素具有唯一 ID。

您页面上的控件是 asp.net 控件,而不是通用 HTML 控件。

如果你在你的 HTML 中HtmlInputHidden放置一个泛型,你会使用它。<input type="hidden" />

于 2013-03-28T19:23:36.543 回答
3

您应该在 Masterpage 中创建一个包含 HiddenField 的属性。

public String HdnFieldValue
{
get
{
    return hidField.Value;
}
set
{
    hidField.Value = value;
}
}

在后面的页面代码中,您可以像这样访问它:

((YourCustomMaster)Page.Master).HdnFieldValue

如果有什么不清楚的请问我。

于 2013-03-28T18:57:21.450 回答
1

我认为您不需要在隐藏字段的 ID 前加上ctl00_,只需使用普通 ID:

(HtmlInputHidden)Page.Master.FindControl("hdnField");
于 2013-03-28T19:01:31.520 回答
0

使用类似的东西:

if (Page.Master.FindControl("hdnField") != null)
{
    String myValue = (HtmlInputHidden)Page.Master.FindControl("hdnField").value;
}
于 2013-03-28T19:10:00.463 回答