如何通过命令从服务器端使用json触发jquery函数 [英] how to fire jquery function with json from server side by order

查看:58
本文介绍了如何通过命令从服务器端使用json触发jquery函数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

  string  clientscrpt =  的javascript:loadclientdet();; 
clientscrpt + = loadCi(' + dt.Rows [ 0 ] [ ciid]。ToString()+ ');;
clientscrpt + = loadTeam(' + assignedTeamId + ');;
clientscrpt + = loadEmpName('drpicassignedgroup','drpicassigneename',' + dt。行[ 0 ] [ assigned_empid ] .ToString()+ ');;
clientscrpt + = loadEmpdet('drpicassigneename','txticassigneemail','txticassigneedepartment','txticassigneemobile',' txticassigneedesignation');;
clientscrpt + = loadEmpName('drpiccoordinatorgroup','drpiccoordinatorname',' + dt。行[ 0 ] [ coordinator_empid ] .ToString()+ ');;
clientscrpt + = loadEmpdet('drpiccoordinatorname','txticcoordinatoremail','txticcoordinatordepartment','txticcoordinatormobile',' txticcoordinatordesignation');;

ClientScript.RegisterStartupScript( this .GetType(), CallMyFunction,clientscrpt, true );







我想按顺序触发函数。例如, loadci()函数是加载项目的详细信息。< pre lang =c#> // ------- json调用函数------- ------------------- //
function loadCi(ciidselect){
试试 {
var catid = $( #drpiccategory)VAL();
var envid = $( #drpicenvironment )VAL();
var rest = $(' #drpAffectedCI );
$( #hiddenAffectedCiValue)。val(' ');

$ .ajax({
type: POST
url: incidentnewform.aspx / loadCIFiltered
data:JSON .stringify({catid:catid,envid:envid}),
contentType: application / json; charset = utf-8
dataType: json
beforeSend:function(){
rest.append( < option> Loading ...< ; / option>);
},
成功:函数(数据){
rest.empty();

$ .each( data.d,function(index,item){

rest.append( < option value =' + item.split(' 〜 ')[ 0 ] + ' > + item.split(' 〜')[ 1 ] + < / option>);
});

if (ciidselect!= ){

$(' #drpAffectedCI')VAL(ciidselect)。
}
},
失败:函数(响应){
alert( 发生了一些错误......);
}
});

}
catch (e){
alert( 发生错误..);
}
}



当CI未完全加载时,将触发下一个函数loadTeam()。我想在loadci()调用onsuccess后加载loadtem(),即loadci()完成。当CI处于beforeSend测试时,函数loadTeam()被触发。



如何使用registerstartupscript进行操作?



由于某种原因,我无法逐个触发json onsucess本身的函数。



 loadci() 
{
// 一些json调用//
onsuccess: function(data)
{
loadteam();
}
}





我希望我能理解。

解决方案

#drpiccategory)。val();
var envid =


#drpicenvironment)VAL();
var rest =


' #drpAffectedCI');

string clientscrpt = "javascript:loadclientdet();";
           clientscrpt+="loadCi('" + dt.Rows[0]["ciid"].ToString() + "');";
           clientscrpt+="loadTeam('"+assignedTeamId +"');";
           clientscrpt+="loadEmpName('drpicassignedgroup','drpicassigneename','"+dt.Rows[0]["assigned_empid"].ToString() +"');";
           clientscrpt+="loadEmpdet('drpicassigneename','txticassigneemail','txticassigneedepartment','txticassigneemobile','txticassigneedesignation');";
           clientscrpt+="loadEmpName('drpiccoordinatorgroup','drpiccoordinatorname','"+dt.Rows[0]["coordinator_empid"].ToString() +"');";
           clientscrpt+="loadEmpdet('drpiccoordinatorname','txticcoordinatoremail','txticcoordinatordepartment','txticcoordinatormobile','txticcoordinatordesignation');";

           ClientScript.RegisterStartupScript(this.GetType(), "CallMyFunction", clientscrpt, true);




I want to fire the functions orderly.For example,loadci() function is to load details of items.

//-------json call function--------------------------//
function loadCi(ciidselect) {
    try {
        var catid = $("#drpiccategory").val();
        var envid = $("#drpicenvironment").val();
        var rest = $('#drpAffectedCI');
        $("#hiddenAffectedCiValue").val('');
       
        $.ajax({
            type: "POST",
            url: "incidentnewform.aspx/loadCIFiltered",
            data: JSON.stringify({ catid: catid, envid: envid }),
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            beforeSend: function () {
                rest.append("<option>Loading...</option>");
            },
            success: function (data) {
                rest.empty();

                $.each(data.d, function (index, item) {

                    rest.append("<option value='" + item.split('~')[0] + "'>" + item.split('~')[1] + "</option>");
                });

                if (ciidselect != "") {
                  
                    $('#drpAffectedCI').val(ciidselect);
                }
            },
            failure: function (response) {
                alert("Some error occurred...");
            }
        });

    }
    catch (e) {
        alert("Error occurred..");
    }
}


When CI is not fully loaded the next function loadTeam() is fired. I want to load the loadtem() after loadci() onsuccess is called i.e. loadci() completed. when the CI is at beforeSend test the function loadTeam() gets fired.

How to do it with registerstartupscript?

I can not fire the functions in the json onsucess itself one by one due to some reason.

loadci()
{
//some json call//
onsuccess:function(data)
{
loadteam();
}
}



I hope I can make understand.

解决方案

("#drpiccategory").val(); var envid =


("#drpicenvironment").val(); var rest =


('#drpAffectedCI');


这篇关于如何通过命令从服务器端使用json触发jquery函数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆