【问题标题】:jQuery Function QuestionjQuery函数问题
【发布时间】:2009-03-12 18:25:07
【问题描述】:

我有一个关于 jQuery 函数的问题。我有一个功能,一旦浏览器准备好,该功能就会找到一个特定的表格,然后向它添加悬停和单击功能。

我正在尝试从 asp .net 页面中的代码调用此函数,因为一旦有人将其添加到数据库中,更新面板就会触发并检索 gridview(受文档中的函数影响的表。准备好)。当它回来时,它又是一张普通的桌子。

这里是原始函数:

$("#GridView1").find("tr").click(function(e) {
                var row = jQuery(this)
                //var bID = row.children("td:eq(0)").text();
                $('#tbHiddenBatchID').val(row.children("td:eq(0)").text());
                //Took out repetitive code, places values from table into modal




                e.preventDefault();
                $('#modalContentTest').modal({ position: ["25%", "5%"] });
                //row.addClass('highlight');
                //$('#tbEdit').val(bID);
            });

//here is the function that adds hover styling
$("#GridView1").find("tr").click(function() {
            return $('td', this).length && !$('table', this).length
        }).css({ background: "ffffff" }).hover(
            function() { $(this).css({ background: "#C1DAD7" }); },
            function() {
                $(this).css({ background: "#ffffff" });

            });

好的,我尝试做的是创建一个函数,在 document.ready 上调用它,并在数据库更新后在后面的代码中调用它。

这就是我所做的:

function helpGrid() {
            $("#GridView1").find("tr").click(function(e) {
                var row = jQuery(this)
                //var bID = row.children("td:eq(0)").text();
                $('#tbHiddenBatchID').val(row.children("td:eq(0)").text());
                //
                e.preventDefault();
                $('#modalContentTest').modal({ position: ["25%", "5%"] });
                //row.addClass('highlight');
                //$('#tbEdit').val(bID);
            });

//Haven't even tried to add the hover stlying part yet; can't get this to work.
        }

当我尝试调用 helpGrid();我收到一个未定义的错误...

显然我是 jQuery 新手,但我确实有 jQuery 在行动中,我正在搜索它,现在寻找答案......

请帮忙..

谢谢!!!

【问题讨论】:

  • 更正了 asp.net 标签与 asp 和 .net 标签...
  • 谢谢...没注意...

标签: asp.net javascript jquery


【解决方案1】:

由于您使用的是更新面板,因此整个页面不会回发,并且 document.ready 的东西永远不会受到打击...下面是您可以添加一个函数以在更新结束时运行的地方,因此 resetMyTableStuff() ;是你想要施展魔法的地方...

尝试添加类似这样的内容...

function pageLoad() {
    if (!Sys.WebForms.PageRequestManager.getInstance().get_isInAsyncPostBack()) {
        Sys.WebForms.PageRequestManager.getInstance().add_endRequest(endRequestHandler);
        Sys.WebForms.PageRequestManager.getInstance().add_initializeRequest(initializeRequest);
    }
}

function endRequestHandler(sender, args) {
     resetMyTableStuff();
}

function initializeRequest(sender, args) {
      //just in case you need to do it...
}

【讨论】:

  • 嗯...有趣,现在玩这个。大声笑,这是我开始使用 jQuery 的部分原因。现在那个asp在哪里。网络 Ajax 备忘单....
  • 如果你要使用 jQuery AJAX 的东西,你可以简单地使用 onSuccess 函数来实现魔法,但是将 3 种不同的东西混合在一起本身就是一种冒险。这就是我处理它的方式。我直接从我的应用程序中提取了这段代码。
  • 谢谢。我将您的代码放入一个单独的文件中,并且在从服务器发送数据后能够使用它调用警报函数。我会做 jQuery onSuccess 但在 asp .net 中调用代码隐藏按钮的按钮。
  • 如果你走 jQuery ajax 路线,你就不会使用按钮来点击代码隐藏,而是会调用 Web 服务或 Web 方法...
  • 是的...正在考虑完全走 Web 服务路线,但我喜欢让 asp 用表格完成所有繁重工作是多么容易。我还有一个表,我用 jQuery 调用一个服务,呃...... asp 通过 json 发回的日期...... /Date(1236097560000-0500)/.这很有趣。
猜你喜欢
  • 2011-12-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-15
  • 2017-03-31
  • 2018-01-03
  • 2017-06-27
相关资源
最近更新 更多