コード ビハインドから ASP.NET の HiddenField コントロールの「name」属性を設定したいのですが、「Attributes」プロパティが見つかりません。目的があるのではないですか?属性を追加するにはどうすればよいですか?
ありがとう
コード ビハインドから ASP.NET の HiddenField コントロールの「name」属性を設定したいのですが、「Attributes」プロパティが見つかりません。目的があるのではないですか?属性を追加するにはどうすればよいですか?
ありがとう
属性は、ネーミング コンテナーチェーン内の非表示フィールドとその先祖の ID プロパティから自動的name
に計算されます。自分で設定することはできません。コントロールのUniqueIDを介してのみアクセスできます。
コードについて詳しく知らなくても、可能性のある解決策は、Html マークアップに runat="server" 属性を追加して、ASP.NET Web コントロールではなくサーバー側の Html コントロールを使用することです。
<input type="hidden" id="myHiddenField" runat="server" />
次に、実行時に name 属性が推測されるコード ビハインドで id を動的に指定できます。
myHiddenField.ID = "CodebehindName";
myHiddenField.Value = "myValue";
これにより、次の出力が得られます。
<input name="CodebehindName" type="hidden" id="CodebehindName" value="myValue" />
これに対処するためのもう 1 つの非正統的な方法は、クライアント側で name 属性を設定することです。これは、PayPal などのサードパーティに投稿する場合に便利です。
jQueryEG:
<script type="text/javascript">
$(function () {
$('#BusinessHid').prop('name', 'business')
$('#CurrencyHid').prop('name', 'currency_code')
$('#InvoiceHid').prop('name', 'invoice')
$('#AmountHid').prop('name', 'amount')
})
</script>
<asp:HiddenField ID="BusinessHid" runat="server" ClientIDMode="Static" />
<asp:HiddenField ID="CurrencyHid" runat="server" ClientIDMode="Static" />
<asp:HiddenField ID="InvoiceHid" runat="server" ClientIDMode="Static" />
<asp:HiddenField ID="AmountHid" runat="server" ClientIDMode="Static" />
HiddenField コントロールのことは忘れて、代わりに Label を使用し、名前 (ID) を付けて非表示にし、テキストをそこに保存します。
label = new System.Web.UI.WebControls.Label() {
Text = "Here my hidden text",
};
label.Attributes.Add("id", "MyHiddenFieldID");
label.Attributes.Add("style", "display:none;");
myParentControl.Controls.Add(label);
次を使用して、javascript の非表示フィールドを取得します。
var myHiddenField = document.getElementById("MyHiddenFieldID");