我有一个dataTable,包含数百个带有固定50 iDisplayLength选项的项目.我需要能够找到加载节点中特定行的页面.
我所管理的只是获取位置,遗憾的是内部行位置与当前排序和过滤的行索引不对应.
以jsFiddle为例.我可以检索位置或行#tr4(位置3),但我需要的iDisplayStart是2.
<table id="example">
<thead>
<tr>
<th>ID</th>
<th>Rendering engine</th>
<th>Browser</th>
<th>Platform(s)</th>
<th>Engine version</th>
<th>CSS grade</th>
</tr>
</thead>
<tbody>
<tr id="tr1" class="odd gradeX">
<td>1</td>
<td>Trident</td>
<td>Internet Explorer 4.0</td>
<td>Win 95+</td>
<td class="center"> 4</td>
<td class="center">X</td>
</tr>
<tr id="tr2" class="even gradeC">
<td>2</td>
<td>Trident</td>
<td>Internet Explorer 5.0</td>
<td>Win 95+</td>
<td class="center">5</td>
<td class="center">C</td>
</tr>
<tr id="tr3" class="odd gradeA">
<td>3</td>
<td>Trident</td>
<td>Internet Explorer 5.5</td>
<td>Win 95+</td>
<td class="center">5.5</td>
<td class="center">A</td>
</tr>
<tr id="tr4" class="even gradeA">
<td>4</td>
<td>Trident</td>
<td>Internet Explorer 6</td> …Run Code Online (Sandbox Code Playgroud) 我有一个索引页面,它将用户发送到单独的浏览器选项卡上的编辑产品页面。
对于编辑的每个产品,索引都会重写 Session["ProductID"]。
然后,编辑页面包含以下代码,以便为该选项卡和产品提供唯一标识符:
if (!IsPostBack) //first time page load
{
Random R = new Random(DateTime.Now.Millisecond + DateTime.Now.Second * 1000 + DateTime.Now.Minute * 60000 + DateTime.Now.Minute * 3600000);
PageID.Value = R.Next().ToString();
Session[PageID.Value + "ProductID"] = Session["ProductID"];
}
Run Code Online (Sandbox Code Playgroud)
这是有效的,当同一用户打开多个选项卡时,我只在代码中引用 Session[PageID.Value + "ProductID"],以便我始终拥有正确的 ID。(我正在一个受信任的环境中工作,这是针对内部网的,因此我不太关心安全级别)。
如果用户通过按 F5 键刷新页面,就会出现我的问题。此时 Session[PageID.Value + "ProductID"] 获取他打开的最后一个产品的 Session["ProductID"]。
例如:
用户 1 在选项卡 1 中打开产品 1
用户 1 在选项卡 2 中打开产品 2
每当他们正常使用该工具时,一切都会正常。但是如果:
产品 1 页面上的用户 1 点击刷新按钮 (F5),产品 1 页面变为产品 2 页面
有没有办法从“第一次加载/从另一个页面重定向”中检测页面刷新,以便我可以告诉我的页面不要更新我的会话[PageID.Value +“ProductID”]?
正如标题所说,我的css在使用ie9时在本地工作正常,但是当部署到IIS7时,不应用border-radius和box-shadow,尽管ff4和Chrome工作正常.
.blabla
{
-moz-border-radius:10px;
border-radius: 10px;
box-shadow: 3px 3px 10px #000000;
height: 101px;
margin: 5px;
width: 225px;
cursor:pointer;
background:url('./Content/images/background.png') scroll 0 0px no-repeat;
}
Run Code Online (Sandbox Code Playgroud)
我正在使用一个MVC3项目,该项目<!DOCTYPE html>已经存在.它在使用时最初没有在本地工作border-radius: 10px 10px 10px 10px;我将其更改为仅提及10px一次并且这使得技巧(并且还使盒子阴影工作)但它仍然不是部署时工作.有任何想法吗?
编辑:我在IE的开发人员工具中检查过,border-radius是在本地但是在部署时没有出现,这解释了为什么它不起作用...问题是为什么它不显示?
EDIT2:我注意到了其他的东西......我的doctype在我的代码中正确编写: <!DOCTYPE html>在浏览器中显示为禁用:<!-- DOCTYPE html -->仍然无法弄清楚如何修复它.
编辑3:我创建了一个普通的ASPX Web应用程序,同样的问题.在本地工作但在IIS7上注释了doctype ...
我有一个在Chrome和FF中完美运行的工具.但是对于任何版本的IE浏览器都会显示缓存信息而不是执行Ajax拉取以检索数据.
这是我的设置:
我有循环的标准:
@foreach (var item in Model)
{
<div class="sizeTDCriteria">
@Html.DisplayFor(modelItem => item.Text)
</div>
<div class="sizeTDCriteriaAction">
@Ajax.ImageActionLink(Url.Content("~/Content/images/icons/edit.png"), "Edit Criteria", "AddOrEditCriteria", "Management", new { competencySectionId = ViewBag.competencySectionId, criteriaId = item.Id }, new AjaxOptions { UpdateTargetId = "AddOrEditCriteriaFormContainer" }, new { @class = "iconPosition" })
@Ajax.ImageActionLink(Url.Content("~/Content/images/icons/delete.png"), "Delete Criteria", "RemoveCriteria", "Management", new { criteriaId = item.Id }, new AjaxOptions { UpdateTargetId = "CompetenciesManagementWrapper" }, new { @class = "iconPosition" })
</div>
}
Run Code Online (Sandbox Code Playgroud)
ImageActionLink只是一个帮助器,可以创建一个内部带有图像的ActionLink,我尝试使用普通的ActionLink进行此操作,同时也会出现问题,因此您可以忽略它.我也尝试用一个<img>带有jQuery触发器的plain来改变整个ImageActionLink ,没有任何区别.
当用户点击编辑链接时,它会对"AddOrEditCriteria"执行ajax调用,ActionResult会找到条件,并将PartialView表单显示回div"#AddOrEditCriteriaFormContainer".到目前为止一切顺利,这在所有浏览器中都能正常运行
但是,当我第二次点击该编辑时,不是进行ajax调用,IE只是显示PartialView,而不是它在缓存中的内容,当所有其他浏览器再次正确地提取数据时(这是必需的,因为该视图允许编辑标准,它可能已被其他人同时编辑).
奇怪的部分是IE正在进行调用但不知何故它从未到达服务器,它只是通过使用结果304来使用缓存.您可以从此网络捕获中看到:
URL Method Result …Run Code Online (Sandbox Code Playgroud) 我正在开发我的第一个php网站,我遇到了一个我无法弄清楚的问题.我正在尝试拥有一个包含我的结构的php页面,以及其他将html注入其中的页面,同时保留url更改,因此我仍然可以直接链接页面.
到目前为止,这就是我正在做的事情,但它看起来效率不高:
的index.php
<html xmlns="http://www.w3.org/1999/xhtml">
<?php include("head.php"); ?>
<body>
<div class="container">
<!-- Navigation header -->
<?php include("navigation.php"); ?>
<!-- Main container -->
<div id="MainContainer">
<?php include("home.php"); ?>
</div>
<!-- Footer -->
<?php include("footer.php"); ?>
</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
about.php
<html xmlns="http://www.w3.org/1999/xhtml">
<?php include("head.php"); ?>
<body>
<div class="container">
<!-- Navigation header -->
<?php include("navigation.php"); ?>
<!-- Main container -->
<div id="MainContainer">
About me!
</div>
<!-- Footer -->
<?php include("footer.php"); ?>
</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
这感觉完全错了,如果我想改变我的容器类,或改变结构,我现在必须在两个地方而不是一个地方做.
在ASP.net MVC中,我将有一个包含我的HTML结构的Layout_Head.cshtml文件,在里面我可以从不同的页面渲染视图,url会更改但是布局总是首先呈现,然后控制器/操作负责注入所需视图的html.
我如何在PHP中复制它?
我正在尝试测试我的功能之一,但其中一部分使用了控制器中的私有变量。如何让Jasmine伪造该私有变量中的数据?
window.MyApp = window.MyApp || {};
(function(myController) {
var deliverablesKoModel;
myController.initialize = function(releaseId) {
// Ajax call with this success:
deliverablesKoModel = new knockOutModel(data); // this model contains an observable array named 'deliverables'
};
myController.checkDeliverableNameIsValid = function (deliverable) {
var valid = false;
if (ko.unwrap(deliverable.name) !== null && ko.unwrap(deliverable.name) !== undefined) {
// PROBLEM HERE
// when running the test deliverablesKoModel below is always undefined!
/////////////
valid = _.all(deliverablesKoModel.deliverables(), function(rel) {
return (ko.unwrap(rel.name).trim().toLowerCase() !== ko.unwrap(deliverable.name).trim().toLowerCase()
|| ko.unwrap(rel.id) === ko.unwrap(deliverable.id));
}); …Run Code Online (Sandbox Code Playgroud) 尝试加载具有动态导入代码的vueJs组件时,Jest会抛出错误.
零件:
<script>
const Modal = () => import(/* webpackChunkName: "Modal" */ "../pages/common/Modal.vue");
export default {
name: "TileEditModal",
components: {
Modal
},
data() {
return
},
methods: {
test() {
return true;
}
}
}
</script>
Run Code Online (Sandbox Code Playgroud)
测试:
import TileEditModal from "./TileEditModal.vue"
Run Code Online (Sandbox Code Playgroud)
即使没有运行测试,只需导入该组件也会引发以下错误:
return import( /* webpackChunkName: "Modal" */"../pages/common/Modal.vue");
^^^^^^
SyntaxError: Unexpected token import
at ScriptTransformer._transformAndBuildScript (node_modules/jest-runtime/build/ScriptTransformer.js:289:17)
at Object.<anonymous> (srcVue/pages/landing/TileEditModal.vue.test.js:3:22)
Run Code Online (Sandbox Code Playgroud)
我试过这个解决方案,但它对我没用.
我正在使用jest-vue-preprocessor开玩笑:
"jest": {
"moduleFileExtensions": [
"js",
"vue"
],
"transform": {
"^.+\\.js$": "<rootDir>/node_modules/babel-jest",
".*\\.(vue)$": "<rootDir>/node_modules/jest-vue-preprocessor"
},
"clearMocks": …Run Code Online (Sandbox Code Playgroud) 我有两个清单.第一个是从API(APITasks)中提取的任务列表,第二个是我在本地SQL DB上的列表任务.该工具允许用户"声明"APITask并通过存储TaskIssueId在本地记录该声明.
可能会发生APITask不时被删除的情况.我的工具有代码,当用户列出所有"声称"的任务时,会注意到并向用户提及.现在我遇到的问题是让用户的任务通过APITasks排序(按AnotherInternalId排序,这是另一个Id,复杂且不相关),如果任何任务不再可用,仍然显示它(我的代码捕获了异常并显示消息).
这是我的SQL查询:
myTasks = (from m in myTasksFiltered
join d in APITasks on m.TaskIssueId equals d.TaskIssueId
into joinedData
from d in joinedData.DefaultIfEmpty()
let index = (int?)d.AnotherInternalId ?? 0
orderby index
select m).ToList();
Run Code Online (Sandbox Code Playgroud)
这个线程帮助创建了该查询,但是我一直得到一个空引用异常错误,因为当查询到达APITask中不存在的本地任务时,d变为null并且一切都从那里爆炸.
我正在尝试让表单上传工作,以将数据上传到我的 Firestore 数据库以及将图像上传到我的 Firebase 存储。
我个人可以同时执行这两项操作,但是除了存储上传图像的确切 URL 之外,我似乎无法弄清楚如何以编程方式将图像引用存储在我的 firestore 中。
但无论我以编程方式尝试什么都不起作用:
帖子图片上传:
const url = await storageRef.snapshot.ref.getDownloadURL()
let imageRef = storage.ref().child(`test/${this.imageData.filename}`).ref
// let imageRef = storageRef.snapshot.ref
// let imageRef = storage.ref(`test/${this.imageData.name}`)
const docRef = await testImagesCollection.add({
thumbnail: imageRef,
dateCreated: firestore.FieldValue.serverTimestamp()
})
alert("upload succeeded", docRef.id)
Run Code Online (Sandbox Code Playgroud)
我通常会得到:FirebaseError: Function DocumentReference.set() called with invalid data. Unsupported field value: a custom Reference object (found in field thumbnail)
如果必须的话,我只会存储 URL,但我宁愿不这样做,如果控制台允许我设置引用,我也应该能够以编程方式完成它?!
我在div中有一个元素,它有一个与之关联的click事件.两个点击事件都可以正常工作,除非它们同时触发.
当我单击内部元素以禁用父div的click事件时:
我的html(在@foreach MVC Razor循环中):
<td class="tdfuncLangSignOff tdNotChecked tdLang@(item.Language.Name)" title="@(item.SignedOffStatus)">
<div class="addComment"></div>
@Html.Hidden("funcSignOffId", item.Id)
</td>
Run Code Online (Sandbox Code Playgroud)
我的jquery:
var handler = function () {
var thisTD = $(this);
var signOffId = thisTD.parent().children("input#funcSignOffId").val();
console.log("parent div click");
}
$(".tdfuncLangSignOff").click(handler);
$(".addComment").click(function () {
$(this).parent().unbind("click")
console.log("nested div click");
//$(this).parent().click(handler)
});
Run Code Online (Sandbox Code Playgroud)
我从这个帖子中找到了处理程序的想法
这允许我点击addComment div并根据需要禁用父div的点击.但重新绑定显然不会发生.当我$(this).parent().click(handler)在addComment单击功能中取消注释时,单击触发器,控制台显示"父div单击".
如何在不立即触发的情况下重新绑定父div的点击?