ASP.Net コードを開発用 VM からサーバーに移動するときに奇妙な問題が発生します。
ページが VM に読み込まれると、マスターに javascript があり、日時ピッカーをテキスト ボックスにアタッチします。
function loadAnyTimeDT() {
$('.AnyTimeDT').each(function () {
$(this).AnyTime_picker(
{
askEra: false,
askSecond: false,
format: "%d-%b-%y %H:%i"
});
});
$('.AnyTimeD').each(function () {
$(this).AnyTime_picker(
{
askEra: false,
askSecond: false,
format: "%d-%b-%y"
});
});
$('.AnyTimeT').each(function () {
$(this).AnyTime_picker(
{
askEra: false,
askSecond: false,
format: "%H:%i"
});
});
}
$(document).ready(function () {
loadAnyTimeDT();
});
これはうまく機能し、結果に満足しました。コードをサーバーに移動してデプロイすると、突然日時ピッカーが機能しなくなります。
Web ページのページ ソースを調べたところ、css クラスがサーバーでは "textbox" にスワップされているが、vm ではスワップされていないことに気付きました。これは、コードではなくページが読み込まれた後に発生しています。
これは、グリッドビュー内のテキスト ボックスの 1 つの例です。
<EditItemTemplate>
<asp:TextBox ID="txtbTimeStartTime" CssClass="AnyTimeT" runat="Server" Text="<%# Eval("StartTime") %>"></asp:TextBox>
</EditItemTemplate>
ページの読み込み後、これがソースに表示されるものです
<input name="ctl00$ContentPlaceHolder1$gvTime$ctl03$txtbTimeStartTime" type="text" id="ContentPlaceHolder1_gvTime_txtbTimeStartTime" class="textbox">
これにより、クラスごとに正しいものだけを選択できなくなったため、日時ピッカーをアタッチするのが難しくなっています。
css クラスを VM と同じように強制することについて何か考えはありますか?