Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/300.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用JQuery检查AJAX调用的结果集是否有值_Javascript_C#_Jquery_Asp.net_Ajax - Fatal编程技术网

Javascript 如何使用JQuery检查AJAX调用的结果集是否有值

Javascript 如何使用JQuery检查AJAX调用的结果集是否有值,javascript,c#,jquery,asp.net,ajax,Javascript,C#,Jquery,Asp.net,Ajax,我使用iQuery对服务器进行AJAX调用并返回一组值。返回的值是动态的。由于结果计数是动态的,我无法查看结果集,也无法将值分配给要在网页中显示的HTML元素 如果结果集中有一个值并且在我的系统中使用该值,请告知我如何查看。结果集中的最大计数为16,我在脚本中手动分配了值 在我的Web页面的DocumentReady中调用AJAX方法 AJAX调用定义 使用两个jQuery函数显示详细信息,并在出现错误时提示消息。注:未显示错误功能 当只有Result.d.ResultSet[0]时,FillM

我使用iQuery对服务器进行AJAX调用并返回一组值。返回的值是动态的。由于结果计数是动态的,我无法查看结果集,也无法将值分配给要在网页中显示的HTML元素

如果结果集中有一个值并且在我的系统中使用该值,请告知我如何查看。结果集中的最大计数为16,我在脚本中手动分配了值

在我的Web页面的DocumentReady中调用AJAX方法

AJAX调用定义

使用两个jQuery函数显示详细信息,并在出现错误时提示消息。注:未显示错误功能

当只有Result.d.ResultSet[0]时,FillMethod函数中出现问题。DASH_NAME具有有效值,而以下索引没有任何值。 注意:结果是成对返回的,如果DASH_名称可用,则TRCOUNT也可用于同一索引

我所需要做的就是不考虑我需要在标签中显示的结果计数,以便动态地从结果集中排序值。这里有两组可以获得的结果集。

试试这个

if (Result.d.ResultSet.length > 0) {
for (i = 0; i < Result.d.ResultSet.length; i++) {
  $('[id$=lblCode'+i+']').html(Result.d.ResultSet[i].DASH_NAME);
  $('[id$=lblNot1'+i+']').html(Result.d.ResultSet[i].TRCOUNT);

}
if(Result.d.ResultSet.length>0){
对于(i=0;i
我恐怕还真的、真的不清楚具体的问题是什么(而且您发布的示例结果集没有提供任何关于为什么您不能简单地循环它们的清晰信息),但我愿意猜测一下

问题是您试图将一组动态结果写入输出的一组静态占位符

如果是这种情况,请不要将占位符设为静态。只需在希望显示结果的位置保留一个空白,并在获得结果后将其写入页面的该部分。您不需要HTML元素,可以动态创建它们。例如:

success: function (msg) {
    // let's assume msg is an array of data
    for(var i = 0; i < msg.lengh; i++) {
        $('#output').append(
            '<div>' + msg[i].DASH_NAME + ' - ' + msg[i].DASHSTATUS + '</div>'
        );
    }
}

当然,如何定义和设置标记的样式完全取决于您自己。关键是您可以通过JavaScript代码动态创建标记,因此可以根据AJAX请求的结果动态创建标记。

对于初学者,为什么要使用
eval()
?这是魔鬼本身。永远不要使用它。其次,为什么不在
FillMethod
函数中使用循环?问题到底出在哪里?结果是动态的有什么错?如果结果是一个数组,那么你可以简单地在该数组上循环。另外,为了回答另一个用户的问题,你到底为什么是我们调用
eval
而不是直接调用函数?@Dilip:您在这里使用
eval()
eval(ErrorMethod+“()”;
。为什么?为什么不能直接使用这个?:
ErrorMethod()
@Dilip:你是在问如何在JavaScript中实现循环吗?它们真的非常类似于其他语言:非常感谢。我真的需要研究如何传达信息,这个问题通过在代码中添加循环就解决了。我所采用的方法是一个非常糟糕的做法。@Dilip:很高兴我终于能帮上忙了:)作为一般建议,如果你打算做越来越多的JavaScript工作,那么你会发现最好放弃ASP.NET WebForms控件结构。我建议改为采用ASP.NET MVC,并利用它提供的对标记和客户端代码的更精细的控制。你可以实现同样的控制rol在WebForms中,它只是有点笨重。我真的很想在这方面得到一些帮助。你能给我一个起点吗?我是这个领域的业余爱好者,试图做一些小的工作并获得知识。@Dilip:从一些ASP.NET MVC教程开始:当你在MVC的e上下文。许多开发人员试图“像他们在WebForms中习惯的那样”使用MVC,但它永远不会成功。如果您能够理解客户端代码和服务器端代码的分离,并理解HTTP请求的工作方式,您将领先于大多数.NET初级web开发人员。Okeyz。我也将对此进行检查和回复。
function FillMethod() {
    if ($.isEmptyObject(Result.d.ResultSet)) {

    }
    else {

        $('[id$=lblCode1]').html(Result.d.ResultSet[0].DASH_NAME);
        $('[id$=lblNot1]').html(Result.d.ResultSet[0].TRCOUNT);

        $('[id$=lblCode2]').html(Result.d.ResultSet[1].DASH_NAME);
        $('[id$=lblNot2]').html(Result.d.ResultSet[1].TRCOUNT);


        $('[id$=lblCode3]').html(Result.d.ResultSet[2].DASH_NAME);
        $('[id$=lblNot3]').html(Result.d.ResultSet[2].TRCOUNT);

        $('[id$=lblCode4]').html(Result.d.ResultSet[3].DASH_NAME);
        $('[id$=lblNot4]').html(Result.d.ResultSet[3].TRCOUNT);

        $('[id$=lblCode5]').html(Result.d.ResultSet[4].DASH_NAME);
        $('[id$=lblNot5]').html(Result.d.ResultSet[4].TRCOUNT);

        $('[id$=lblCode6]').html(Result.d.ResultSet[5].DASH_NAME);
        $('[id$=lblNot6]').html(Result.d.ResultSet[5].TRCOUNT);


        $('[id$=lblCode7]').html(Result.d.ResultSet[6].DASH_NAME);
        $('[id$=lblNot7]').html(Result.d.ResultSet[6].TRCOUNT);

        $('[id$=lblCode8]').html(Result.d.ResultSet[7].DASH_NAME);
        $('[id$=lblNot8]').html(Result.d.ResultSet[7].TRCOUNT);


        $('[id$=lblCode9]').html(Result.d.ResultSet[8].DASH_NAME);
        $('[id$=lblNot9]').html(Result.d.ResultSet[8].TRCOUNT);

        $('[id$=lblCode10]').html(Result.d.ResultSet[9].DASH_NAME);
        $('[id$=lblNot10]').html(Result.d.ResultSet[9].TRCOUNT);


        $('[id$=lblCode11]').html(Result.d.ResultSet[10].DASH_NAME);
        $('[id$=lblNot11]').html(Result.d.ResultSet[10].TRCOUNT);

        $('[id$=lblCode12]').html(Result.d.ResultSet[11].DASH_NAME);
        $('[id$=lblNot12]').html(Result.d.ResultSet[11].TRCOUNT);

        $('[id$=lblCode13]').html(Result.d.ResultSet[12].DASH_NAME);
        $('[id$=lblNot13]').html(Result.d.ResultSet[12].TRCOUNT);

        $('[id$=lblCode14]').html(Result.d.ResultSet[13].DASH_NAME);
        $('[id$=lblNot14]').html(Result.d.ResultSet[13].TRCOUNT);


        $('[id$=lblCode15]').html(Result.d.ResultSet[14].DASH_NAME);
        $('[id$=lblNot15]').html(Result.d.ResultSet[14].TRCOUNT);

        $('[id$=lblCode16]').html(Result.d.ResultSet[15].DASH_NAME);
        $('[id$=lblNot16]').html(Result.d.ResultSet[15].TRCOUNT);
    }
};
function FillMethodE() {


}
if (Result.d.ResultSet.length > 0) {
for (i = 0; i < Result.d.ResultSet.length; i++) {
  $('[id$=lblCode'+i+']').html(Result.d.ResultSet[i].DASH_NAME);
  $('[id$=lblNot1'+i+']').html(Result.d.ResultSet[i].TRCOUNT);

}
success: function (msg) {
    // let's assume msg is an array of data
    for(var i = 0; i < msg.lengh; i++) {
        $('#output').append(
            '<div>' + msg[i].DASH_NAME + ' - ' + msg[i].DASHSTATUS + '</div>'
        );
    }
}
<div id="output">
    <div>SEND CONFIRMED - 1</div>
    <div>RECV HO RESPONDED - 4</div>
    <div>RECV HO PAID - 3</div>
    <!-- etc... -->
</div>