Javascript 敲除js数据绑定在父屏幕上工作,但在asp.net/vb.net web应用程序的弹出窗口中不工作
我正在开发一个用asp.net和vb.net构建的web应用程序 我有一个页面update_status.aspx,它使用knockout js根据用户在选择框中选择的值显示日期选择器。代码如下所示Javascript 敲除js数据绑定在父屏幕上工作,但在asp.net/vb.net web应用程序的弹出窗口中不工作,javascript,jquery,asp.net,knockout.js,asp.net-ajax,Javascript,Jquery,Asp.net,Knockout.js,Asp.net Ajax,我正在开发一个用asp.net和vb.net构建的web应用程序 我有一个页面update_status.aspx,它使用knockout js根据用户在选择框中选择的值显示日期选择器。代码如下所示 <%@ Page Title="" Language="VB" MasterPageFile="E4.master" AutoEventWireup="false" CodeFile="update-status.aspx.vb" Inherits="E4_Jobs_Details_Appl
<%@ Page Title="" Language="VB" MasterPageFile="E4.master" AutoEventWireup="false" CodeFile="update-status.aspx.vb" Inherits="E4_Jobs_Details_Application_update_status" %>
<asp:Content ID="Content1" ContentPlaceHolderID="MainContent" runat="Server">
<div class="entry-wrapper">
<input type="hidden" id="appId" value="<%= VacancyApplication.ID%>" />
<div class="form-element">
<label>Current status</label>
<input type="text" readonly="readonly" value="<%= VacancyApplication.Status%>" />
</div>
<div class="form-element">
<label>New status (required)</label>
<select id="comNewStatus" runat="server" datavaluefield="id" datatextfield="name" class="nFee"></select>
</div>
<div data-bind="visible: statusId() == 12">
<label>
Start date (required, format: DD-MMM-YYYY)
</label>
<div class="input-append">
<span class="add-on "><span class="icon-calendar"></span></span>
<input class="dp" size="16" type="text" value="" runat="server" id="txtStartDate" />
</div>
</div>
</div>
</asp:Content>
问题是,当我通过更改母版页(如下所示)将此页面转换为弹出页面时,此数据绑定不起作用。也就是说,当用户选择正确的状态时,日历不会出现
<%@ Page Title="" Language="VB" MasterPageFile="E4_Popup.master" AutoEventWireup="false" CodeFile="update-status.aspx.vb" Inherits="E4_Jobs_Details_Application_update_status" %>
E4.master和E4_Popup.master都使用相同的样式和相同的代码文件
<%@ Master Language="VB" CodeFile="E4.master.vb" Inherits="_resx_E4" %>
唯一的区别是它们是不同的文件,E4_Popup.master不包含网页的额外部分,例如;页眉和页脚
但即使我将E4.master页面复制为E4_Popup.master页面并将其引用到更新状态页面。。日历不响了。它只是在E4.master页以外的页面上不起作用
我不明白问题出在哪里
我该怎么办?请给我正确的建议
请参阅下面的淘汰应用绑定代码
<asp:Content ID="Content2" ContentPlaceHolderID="ScriptContent" runat="Server">
<script type="text/javascript">
var ViewModel = function () {
var self = this;
self.histories = ko.observableArray([]);
self.statusId = ko.observable(0);
self.feeType = ko.observable(0);
self.agencyApp = ko.observable(false);
self.offeredSalary = ko.observable(0);
self.finalSalary = ko.observable(0);
self.introductionFee = ko.observable(0);
};
var vm = new ViewModel();
ko.applyBindings(vm);
$(function () {
$("select.chosen").chosen();
dimNav('vacancy');
var aid = $('#appId').val(), feeType = $('#feeType').val(), agencyApp = $('#agencyApp').val();
vm.feeType(parseInt(feeType));
vm.agencyApp(agencyApp);
$('.nFee').change(function () {
vm.statusId(parseInt($(this).val()));
});
//numeric only
$('.txtOfferedSalary, .txtFinalIntroductionFee,.txtFinalSalary').keydown( function(event) {
// Allow: backspace, delete, tab, escape, and enter
if (event.keyCode == 46 || event.keyCode == 8 || event.keyCode == 9 || event.keyCode == 27 || event.keyCode == 13 ||
// Allow: Ctrl+A
(event.keyCode == 65 && event.ctrlKey === true) ||
// Allow: home, end, left, right
(event.keyCode >= 35 && event.keyCode <= 39)) {
// let it happen, don't do anything
return;
} else {
// Ensure that it is a number and stop the keypress
if (event.shiftKey || (event.keyCode < 48 || event.keyCode > 57) && (event.keyCode < 96 || event.keyCode > 105)) {
event.preventDefault();
}
}
});
$.when(
$.ajax({
type: "POST",
url: "/_services/UtilityService.asmx/applicationstatushistories",
data: "{id:" + aid + "}",
contentType: "application/json; charset=utf-8",
dataType: "json",
cache: true
})).done(function (r) {
vm.histories($.parseJSON(r.d));
//console.log();
momentize();
});
});
</script>
</asp:Content>
当我运行应用程序时。。。对于E4.master页、E4_popup.master页和update_status_popup.aspx页,会出现以下类型的警告 导入“Telerik.WebControls”中指定的命名空间或类型不包含任何公共成员或找不到。确保已定义命名空间或类型,并且至少包含一个公共成员。确保导入的元素名称不使用任何别名
如果您需要更多信息,请让我知道在您的示例周围必须有您尚未展示的额外代码。例如,ko.applyBindings在哪里被调用等。嗨,我已经编辑了我的问题。请查看我的问题以查看代码。只是想弄清楚我是否只是将页面中的主文件名从e4.master更改为e4_popup.master。。。日期选择器没有出现。即使两个母版页的名称完全相同。当我运行应用程序时。。。对于update_status_popup.aspx页面,出现以下类型的警告:警告108验证XHTML 1.0过渡:“数据绑定”属性不是元素“div”的有效属性。update-status_popup.aspx