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