服务器端的javascript代码在asp.net中不起作用?

服务器端的javascript代码在asp.net中不起作用?,javascript,asp.net,Javascript,Asp.net,我正在开发一个Asp.net应用程序,当我从codebehind调用javascript函数时,我发现例如: 单击“未激发的事件” 我有一个javascript函数,可以使用ajax用项目填充下拉列表,但当加载页面时,我发现下拉列表为空 我正在使用RegisterClientScriptBlock来执行javascript代码 那么,这些问题有什么解决办法吗 代码段: 代码隐藏: ClientScript.RegisterClientScriptBlock(this.GetType(),

我正在开发一个Asp.net应用程序,当我从codebehind调用javascript函数时,我发现例如:

  • 单击“未激发的事件”
  • 我有一个javascript函数,可以使用ajax用项目填充下拉列表,但当加载页面时,我发现下拉列表为空
  • 我正在使用RegisterClientScriptBlock来执行javascript代码

    那么,这些问题有什么解决办法吗

    代码段:

    代码隐藏:

        ClientScript.RegisterClientScriptBlock(this.GetType(), "ClientBlock",   javacode.ToString());
    
    这是javacode变量中的内容:

         <script type="text/javascript">
         <!--
         function ExecuteScript()
         {
        $("#divGender input").click();
         GetDMspecifyList(5); 
        $("cp1_drpDMSpecify").removeAttr('disabled'); 
        $("cp1_drpDMSpecify option:selected").val(4);
        $("#divFamily input").click();
         }
        </script>
         // -->
    
    
    
    此函数用于填充下拉列表,但不起作用

        function GetDMspecifyList(DMID) {
        $("#DMLoader").show();
        $.getJSON('FillDropDownLists.aspx?DMTypeID=' + DMID, function (types) {
        $.each(types, function () {
            $("#cp1_drpDMSpecify").append($("<option></option>").val(this['DMTypeCode']).html(this['DMTypeName']));
        });
        $("#DMLoader").hide();
        $("#DMSpecify_span").show();
        $("#cp1_hdDMType").val($("#cp1_drpDMSpecify").val());
        $("#cp1_drpDMSpecify").removeAttr('disabled');
        });
    
    函数GetDMspecifyList(DMID){ $(“#DMLoader”).show(); $.getJSON('FillDropDownList.aspx?DMTypeID='+DMID,函数(类型){ $。每个(类型、函数(){ $(“#cp1_drpdmsspecify”).append($(“”).val(此['DMTypeCode']).html(此['DMTypeName']); }); $(“#DMLoader”).hide(); $(“#DMSpecify_span”).show(); $(“#cp1_hdDMType”).val($(#cp1_drpDMSpecify”).val(); $(“#cp1_drpdmsspecify”).removeAttr('disabled'); }); }

    首先,函数“ExecuteScript()”缺少右大括号“}”

    另外,ExecuteScript()函数是否在任何地方调用

    编辑

    您可以尝试以下类似的代码:

    <script type="text/javascript">
    <!--
         function ExecuteScript() {
             $("#divGender input").click();
    
             GetDMspecifyList(5, function() {
                 $("cp1_drpDMSpecify").removeAttr('disabled');
                 $("cp1_drpDMSpecify option:selected").val(4);
                 $("#divFamily input").click();
             });
         }
    
         function GetDMspecifyList(DMID, callback) {
             $("#DMLoader").show();
             $.getJSON('FillDropDownLists.aspx?DMTypeID=' + DMID, function (types) {
                 $.each(types, function () {
                     $("#cp1_drpDMSpecify").append($("<option></option>").val(this['DMTypeCode']).html(this['DMTypeName']));
                 });
                 $("#DMLoader").hide();
                 $("#DMSpecify_span").show();
                 $("#cp1_hdDMType").val($("#cp1_drpDMSpecify").val());
                 $("#cp1_drpDMSpecify").removeAttr('disabled');
    
                 callback();
             });
         }
    
    
         $(function() { ExecuteScript(); });
    // -->
    </script>
    
    
    
    尝试使用此功能。您可以共享您的代码吗?到目前为止,您尝试了什么?我在主题中添加了代码:)是的,我的代码中有一个花括号:)很抱歉在这里错过了它,没有它只调用了一次我猜,看看当前的代码,您只添加了ExecuteScipt函数,但没有执行。尝试添加ExecuteScript();在“javacode”变量内容的末尾。或者更好(因为您使用的是jQuery):$(function(){ExecuteScript();});这将在加载DOM时执行函数;它可以工作,但仅适用于-->GetDMspecifyList(5)上该函数内部的行;“这是一个ajax请求”,但不处理点击事件,实际上它改变了控件的值,我的意思是如果值为“1”,我发现它是“2”,类似的东西,我不知道为什么!!!!我相信,您出现奇怪行为的原因是ajax调用。在对“FillDropDownLists.aspx”进行ajax调用时,您试图在“cp1_drpdmsspecify”上设置值。尝试向“GetDMspecifyList”添加回调函数,并在ajax调用返回时执行该函数。