私はユーザーコントロール(tree.ascx)をロードしているaspxページ(default.aspx)を持っています。サーバー側から非表示のフィールド値を読み取ることができません
tree.ascxの中に隠れフィールドがあります。
<asp:HiddenField ID="HiddenField1" runat="server"/>
javascriptを使用して非表示フィールドに値を割り当てています。
document.getElementById('<%=HiddenField1.ClientID%>').value = "some text here";
alert(document.getElementById('<%=HiddenField1.ClientID%>').value);
document.getElementById('form1').submit();
アラートに値が表示されます。値が隠しフィールドに正しく挿入されることを意味します。
しかし、サーバーにポストバックして値をチェックしているときは、常にnullです。
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
// do something.
}
else
{
string str = this.HiddenField1.Value;
}
}
マイコードは、ここでは常に空の文字列を取得しています。何らかの形でポストバックが隠しフィールドから値を消去しています。
どのような理由があることだろうか?
あなたは除きPage_Loadの中に任意のより多くのコードを持っていない:-)あなたのために動作します
そのほかの場合... ため?データベースから隠されたフィールドのデータを取得した場合は、(HiddenField.Value)が上書きされます – levi