将我的 ASP.Net 代码从我的开发 VM 移动到服务器时,我遇到了一个奇怪的问题。
当页面在 VM 上加载时,我在 Master 中有一些 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();
    });
这工作得很好,我对结果很满意。将代码移到服务器上进行部署,突然之间没有日期时间选择器在工作。
在检查了网页的页面源代码后,我注意到 css 类被交换到服务器上的“文本框”,但不在 vm 中。这是在页面加载不在代码中之后发生的。
这是gridview中的一个文本框的示例
    <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 上的任何想法?