1

コード ビハインドから ASP.NET の HiddenField コントロールの「name」属性を設定したいのですが、「Attributes」プロパティが見つかりません。目的があるのではないですか?属性を追加するにはどうすればよいですか?

ありがとう

4

5 に答える 5

6

属性は、ネーミング コンテナーチェーン内の非表示フィールドとその先祖の ID プロパティから自動的nameに計算されます。自分で設定することはできません。コントロールのUniqueIDを介してのみアクセスできます。

于 2010-11-05T09:13:33.797 に答える
4

コードについて詳しく知らなくても、可能性のある解決策は、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" />
于 2010-11-05T09:25:34.907 に答える
2

これに対処するためのもう 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" />
于 2014-01-25T19:37:30.323 に答える
0

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");
于 2012-09-12T09:40:46.670 に答える