C# ng网格未在ie 8中显示网格
我试图在一个客户项目中使用ng grid显示一些数据, 除了IE8(IE11的模拟模式和win 7上的VM通过browserstack的模拟模式)之外,一切都很好。在这里,网格不会被渲染(只有保存列和行的容器div被渲染),我在控制台中遇到的异常是: “无法获取未定义或空引用的属性“宽度” “无法获取未定义或空引用的属性'scrollTop'” 在基于.net的项目上使用ng grid(版本2.0.7)和angular(版本1.2.3)。(项目中使用的jQuery版本为1.11。) 由于IE中的控制台并没有给我更多的跟踪信息,我想我应该问问stackoverflow这里的优秀ppl,如果有人面临类似的问题,或者有人知道应该去哪里寻找 和平,提前感谢你抽出时间 前端代码(已添加) 这是前端的部分代码C# ng网格未在ie 8中显示网格,c#,angularjs,internet-explorer-8,ng-grid,C#,Angularjs,Internet Explorer 8,Ng Grid,我试图在一个客户项目中使用ng grid显示一些数据, 除了IE8(IE11的模拟模式和win 7上的VM通过browserstack的模拟模式)之外,一切都很好。在这里,网格不会被渲染(只有保存列和行的容器div被渲染),我在控制台中遇到的异常是: “无法获取未定义或空引用的属性“宽度” “无法获取未定义或空引用的属性'scrollTop'” 在基于.net的项目上使用ng grid(版本2.0.7)和angular(版本1.2.3)。(项目中使用的jQuery版本为1.11。) 由于IE中的
<div data-ng-controller="benefitsController" >
<div id="topOrderBox-list" class="topOrderBox">
<div class="left">
<div class="boxHeader">
Sök tjänst
</div>
<ul>
<li>
<label class="">
<b>Frisökning</b></label>
<span class="help" title="Fritextsökning: Här kan du anger olika saker ">[?]</span> </li>
<li>
<input class="freeSearch search" type="text" placeholder="Skriv ett sökord" ng-model="model.filterText" />
</li>
<li>
<label>
<b>Leverantörer</b></label>
<span class="help" title="Leverantörer: Här kan du söka efter en viss leverantör">[?]</span> </li>
<li>
<select class="partnersOption" ng-model="model.Partner" ng-options="partner.PartnerName for partner in model.Partners | orderBy:'PartnerName'">
<option value="">Välj en leverantör</option>
</select>
</li>
<li>
<label>
<b>Välj en typ av förmån</b></label>
<span class="help" title="Typ av förmån: Här kan du söka på olika typer av förmåner. ">[?]</span> </li>
<li>
<select class="subCategoryOption" data-ng-model="model.SubCategory" data-ng-options="subCategory.SubCategoryName for subCategory in model.SubCategories | orderBy:'SubCategoryName'">
<option value="">Välj en typ av förmån</option>
</select>
</li>
</ul>
</div>
<div class="right">
<div data-ng-grid="gridOptions" class="gridStyle"></div>
</div>
<div data-ng-if="!(selectedRow[0].IsOrderable)" class="benefitDetails overflow" data-ng-show="selectedRow.length > 0">
<ul>
<li>
<img id="partnerImageId" class="partnerImg" data-ng-src="@Url.Action("Show", "Image")/{{selectedRow[0].PartnerImageId}}" alt="Saknar tjänst bild"/>
<img id="benefitImageId" class="benefitImg" data-ng-src="@Url.Action("Show", "Image")/{{selectedRow[0].ImageId}}" alt="Saknar tjänst bild"/>
<h2>{{selectedRow[0].PartnerName}} {{selectedRow[0].BenefitName}} {{selectedRow[0].TimeSpanString}}, {{selectedRow[0].City}}</h2>
</li>
</ul>
</div>
</div>
<div class="benefitDetails overflow padding-top" ng-show="selectedRow.length > 0">
<div class="spanDiv">
<span ng-bind-html="selectedRow[0].CommonDescription"></span>
<br />
<br />
<span class="taxDescription" ng-bind-html="selectedRow[0].TaxDescription"></span>
</div>
</div>
<div class="bottomLinksBox">
<a data-ng-controller="sendOrderBenefitController" data-ng-click="goToTop()" class="up" href="#">Upp ↑</a>
<a data-ng-if="selectedRow[0].IsOrderable" class="buttonLink rightBox" id="goOnLink" ng-href="@Url.Action("OtherBenefitsOrdering")/{{selectedRow[0].EmployerBenefitId}}" >Gå vidare till beställning</a>
</div>
<div class="contractBox">
<p></p>
</div>
</div>
Sök tjänst
-
弗里斯克宁
[?]
-
-
勒瓦朗特勒
[?]
-
Välj en leverantör
-
Välj en typ avörmån
[?]
-
Välj en typ avörmån
-
{selectedRow[0].PartnerName}{{selectedRow[0].BenefitName}{{selectedRow[0].TimeSpanString},{{selectedRow[0].City}
下面是控制器中的一些代码
adderasApp.controller('benefitsController', ['$scope', 'benefitsService', function ($scope, benefitsService) {
$scope.model = benefitsService.Benefits.get({ isHealthCare: 'false' }, function () {
$scope.EmployerBenefits = $scope.model.EmployerBenefits;
});
$scope.selectedRow = [];
$scope.filterOptions = {
filterText: ''
};
$scope.gridOptions = {
data: 'EmployerBenefits',
columnDefs: [
{ field: 'PartnerName', displayName: 'Leverantör' },
{ field: 'City', displayName: 'Ort' },
{ field: 'BenefitName', displayName: 'Tjänst' },
{ field: 'SubCategoryName', displayName: 'Kategori' },
{ field: 'PriceString', displayName: 'Pris' },
{ field: 'TimeSpanString', displayName: 'Tid' },
],
multiSelect: false,
selectedItems: $scope.selectedRow,
filterOptions: $scope.filterOptions,
headerClass: 'otherBenefitSearchHeader'
//headerRowTemplate: '<div ng-style="{\'z-index\': col.zIndex()}" ng-class="{\'col_select\': col.showSortButtonDown(), \'col_select_up\': col.showSortButtonUp() }" ng-repeat="col in visibleColumns()" class="ngHeaderCell col{{$index}}" ng-header-cell></div>'
};
$scope.$watch('[ model.Partner, model.SubCategory, model.filterText, model.CommonDescription]', function (newValue, oldValue) {
var searchText = [];
var isOrderable;
if (newValue[0] !== undefined && newValue[0] != null) {
searchText.push(newValue[0].PartnerName);
}
if (newValue[1] !== undefined && newValue[1] != null) {
searchText.push(newValue[1].SubCategoryName);
}
if (newValue[2] !== undefined && newValue[2] != null) {
searchText.push(newValue[2]);
}
if (newValue[3] !== undefined && newValue[3] != null) {
searchText.push(newValue[3].CommonDescription);
}
$scope.filterOptions.filterText = searchText.join(';');
}, true);
}]);
adderasApp.controller('benefitscocontroller',['$scope','benefitsService',function($scope,benefitsService){
$scope.model=benefitsService.Benefits.get({isHealthCare:'false'},函数(){
$scope.EmployerBenefits=$scope.model.EmployerBenefits;
});
$scope.selectedRow=[];
$scope.filterOptions={
筛选器文本:“”
};
$scope.gridOptions={
数据:“员工福利”,
columnDefs:[
{字段:'PartnerName',显示名称:'Leverantör'},
{字段:'City',显示名称:'Ort'},
{字段:'BenefitName',显示名称:'Tjänst'},
{字段:'子类别名称',显示名称:'Kategori'},
{字段:'PriceString',显示名称:'Pris'},
{字段:'TimeSpanString',显示名称:'Tid'},
],
多选:错,
selectedItems:$scope.selectedRow,
filterOptions:$scope.filterOptions,
headerClass:“otherBenefitSearchHeader”
//头错误模板:“”
};
$scope.$watch(“[model.Partner,model.SubCategory,model.filterText,model.CommonDescription]”,函数(newValue,oldValue){
var searchText=[];
var可同序;
if(newValue[0]!==未定义&&newValue[0]!=null){
searchText.push(newValue[0].PartnerName);
}
if(newValue[1]!==未定义&&newValue[1]!=null){
searchText.push(newValue[1]。子类别名称);
}
if(newValue[2]!==未定义&&newValue[2]!=null){
searchText.push(newValue[2]);
}
if(newValue[3]!==未定义&&newValue[3]!=null){
searchText.push(newValue[3].CommonDescription);
}
$scope.filterOptions.filterText=searchText.join(“;”);
},对);
}]);
我也试着跟着这条路走
另外,来自工厂/服务的数据正在从同一个域获取数据,数据似乎已经通过,其他不使用ng网格但使用restful服务的页面似乎工作正常
无论如何,再次感谢你为此付出的时间和努力!
和平与10岁以前的IE有问题。跟随它去工作。也就是说,Angular和IE8有一些 对于我的应用程序,我不得不为HTML5支持、Modernizer、完整jQuery和HTML5控件添加垫片。只是为了支持IE9和它。而且它充其量只是一点点。我找到了解决办法!:) 基本上,它的IE8在阅读js和,。 我读了这篇文章后就解决了 因此,在ng网格的控制器代码中,我删除了gridOptions columnDefs对象中最后一个参数之后的。例如:
$scope.gridOptions = {
data: 'EmployerBenefits',
columnDefs: [
{ field: 'PartnerName', displayName: 'Leverantör' },
{ field: 'City', displayName: 'Ort' },
{ field: 'BenefitName', displayName: 'Tjänst' },
{ field: 'SubCategoryName', displayName: 'Kategori' },
{ field: 'PriceString', displayName: 'Pris' },
{ field: 'TimeSpanString', displayName: 'Tid' }
],
multiSelect: false,
selectedItems: $scope.selectedRow,
filterOptions: $scope.filterOptions,
headerClass: 'otherBenefitSearchHeader'
//headerRowTemplate: '<div ng-style="{\'z-index\': col.zIndex()}" ng-class="{\'col_select\': col.showSortButtonDown(), \'col_select_up\': col.showSortButtonUp() }" ng-repeat="col in visibleColumns()" class="ngHeaderCell col{{$index}}" ng-header-cell></div>'
};
$scope.gridOptions={
数据:“员工福利”,
columnDefs:[
{字段:'PartnerName',显示名称:'Leverantör'},
{字段:'City',显示名称:'Ort'},
{字段:'BenefitName',显示名称:'Tjänst'},
{字段:'子类别名称',显示名称:'Kategori'},
{字段:'PriceString',显示名称:'Pris'},
{字段:'TimeSpanString',显示名称:'Tid'}
],
多选:错,
selectedItems:$scope.selectedRow,
filterOptions:$scope.filterOptions,
headerClass:“otherBenefitSearchHeader”
//头错误模板:“”
};
总之,祝你平安,谢谢大家的支持!;) 分享代码会很有帮助…谢谢@Kristofeys,现在前端代码和控制器代码已经添加!谢谢你的时间和评论,我同意IE8似乎让它有点困难。我将阅读更多关于垫片等的内容,看看这在这种情况下是否有帮助。谢谢您的帮助