3

datetimepicker の値を Codebehind (C#) に渡し、C# の変数に保存したいと考えています。

隠しフィールドで試してみましたが、うまくいきません。

ここにjsコードがあります:

var dates = $("#ArrivalStartDatepicker").datetimepicker({
                            defaultDate: "+lw",
                            dateFormat: 'dd-mm-yy',
                            changeMonth: true,
                            numberOfMonths: 2,
                            ampm: true,
                            stepMinute: 10,
                            minuteGrid: 10,
                            onSelect: function (selectedDate) {
                                    document.getElementById("ArrivalStart").value = dates.datetimepicker('getDate');
                                }
                            });

隠しフィールド:

<div>
          <input type="hidden" id="ArrivalStart" runat="server"/> 
</div>

日付または時刻を選択すると、firebug が次のエラーをスローします。

document.getElementById("ArrivalStart") は null です

これは、ArrivalStart-Field が JS でアクセスできないことを示しています。

どうすればこれを管理できますか?

挨拶

トビ

4

2 に答える 2

4

それ以外の

 document.getElementById("ArrivalStart")

使用する

  document.getElementById("<%= ArrivalStart.ClientId %>")

このようにして、ASP.Net が作成した ID を挿入します。

編集ASP.Net はそのブロックを処理する必要があり、ArrivalStart メンバーにアクセスする必要が
あるため、この JavaScript フラグメントは aspx ファイル (別の js ファイルではない) にある必要があります。<%= .. %>

于 2012-05-24T11:21:20.410 に答える
1

コントロールを runat=server にすると、c# が要素のレンダリングを担当します。したがって、ほとんどの場合、コントロールがどのような形式であるか、およびデータ リピーターまたはその他の繰り返しコントロール内にネストされているかどうかを考慮する必要があるため、コントロールの ID を書き換えます。

ページを実行して「ソースを表示」をクリックすると、要素の ID は「ArrivalStart」のままですか、それとも ID が書き換えられていますか?

そうでない場合は、C# を使用して、コントロールの ClientID (Control.ClientID) を jQuery スクリプトに書き込むことができます。

私は間違ったツリーを吠えている可能性があります:)

于 2012-05-24T11:10:20.817 に答える