小编Lan*_*usT的帖子

jQuery DataTables - 获取给定行的页面

我有一个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)

jquery jquery-datatables

6
推荐指数
1
解决办法
1万
查看次数

页面刷新与 IsPostBack

我有一个索引页面,它将用户发送到单独的浏览器选项卡上的编辑产品页面。

对于编辑的每个产品,索引都会重写 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”]?

.net c# asp.net

5
推荐指数
1
解决办法
6541
查看次数

ie9上的border-radius - 在本地工作,但在部署时不工作

正如标题所说,我的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 ...

css internet-explorer iis-7 css3

5
推荐指数
2
解决办法
5297
查看次数

Internet Explorer使用304 Result通过Ajax Pull显示缓存数据

我有一个在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)

c# internet-explorer http-status-code-304 asp.net-mvc-3

5
推荐指数
1
解决办法
2801
查看次数

将php文件加载到布局模板中?

我正在开发我的第一个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中复制它?

php

5
推荐指数
1
解决办法
4732
查看次数

使用私有变量的Jasmine测试函数

我正在尝试测试我的功能之一,但其中一部分使用了控制器中的私有变量。如何让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)

javascript unit-testing jasmine

5
推荐指数
1
解决办法
5479
查看次数

Webpack代码拆分打破了使用vueJs组件的导入

尝试加载具有动态导入代码的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)

javascript babel jest webpack vue.js

5
推荐指数
1
解决办法
775
查看次数

在LINQ中与OrderBy连接

我有两个清单.第一个是从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并且一切都从那里爆炸.

.net c# linq left-join

4
推荐指数
1
解决办法
2361
查看次数

Firebase存储添加文件引用到firestore

我正在尝试让表单上传工作,以将数据上传到我的 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,但我宁愿不这样做,如果控制台允许我设置引用,我也应该能够以编程方式完成它?!

javascript firebase firebase-storage google-cloud-firestore

4
推荐指数
1
解决办法
3114
查看次数

取消绑定后,Jquery重新绑定点击

我在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的点击?

javascript jquery bind unbind

2
推荐指数
1
解决办法
3195
查看次数