从代码隐藏传递到javascript的变量未更新
我需要将新选择的gridview行索引传递给我的aspx页面中的javascript。但是代码只获取变量的初始值,当脚本再次运行时,它包含未更新的值 我的代码隐藏中的变量是“SelectedRowIndex”,它是一个整数从代码隐藏传递到javascript的变量未更新,javascript,asp.net,Javascript,Asp.net,我需要将新选择的gridview行索引传递给我的aspx页面中的javascript。但是代码只获取变量的初始值,当脚本再次运行时,它包含未更新的值 我的代码隐藏中的变量是“SelectedRowIndex”,它是一个整数 window.addEventListener(“按键按下”),函数(事件){ 控制台日志(“”); var validArrowKey=false; var指数=“”; 如果(event.keyCode==40){ validArrowKey=true; 索引++; }
window.addEventListener(“按键按下”),函数(事件){
控制台日志(“”);
var validArrowKey=false;
var指数=“”;
如果(event.keyCode==40){
validArrowKey=true;
索引++;
}
else if(event.keyCode==38&&index>-1){
validArrowKey=true;
索引--;
}
如果(validArrowKey){
var trPaymentDetails=document.getElementById(“trPaymentDetails”+index.toString())
if(trPaymentDetails){
__doPostBack('ctl00$MainContent$grdPaymentDetails','Select$'+index.toString());
}
其他的
__doPostBack('ctl00$MainContent$grdPaymentDetails','Select$'+index.toString());
}
},假)代码>通过将索引
变量移到函数外,使其成为全局变量,则只会设置一次
var index = '<%= SelectedRowIndex %>';
window.addEventListener("keydown", function (event) {
console.log('<%= SelectedRowIndex %>');
var validArrowKey = false;
if (event.keyCode == 40) {
validArrowKey = true;
index++;
}
else if (event.keyCode == 38 && index > -1) {
validArrowKey = true;
index--;
}
if (validArrowKey) {
var trPaymentDetails = document.getElementById("trPaymentDetails_" + index.toString())
if (trPaymentDetails) {
__doPostBack('ctl00$MainContent$grdPaymentDetails', 'Select$' + index.toString());
}
else
__doPostBack('ctl00$MainContent$grdPaymentDetails', 'Select$' + index.toString());
}
}, false);
var指数=”;
window.addEventListener(“按键向下”,函数(事件){
控制台日志(“”);
var validArrowKey=false;
如果(event.keyCode==40){
validArrowKey=true;
索引++;
}
else if(event.keyCode==38&&index>-1){
validArrowKey=true;
索引--;
}
如果(validArrowKey){
var trPaymentDetails=document.getElementById(“trPaymentDetails”+index.toString())
if(trPaymentDetails){
__doPostBack('ctl00$MainContent$grdPaymentDetails','Select$'+index.toString());
}
其他的
__doPostBack('ctl00$MainContent$grdPaymentDetails','Select$'+index.toString());
}
},假);
您刚刚分配了一个匿名函数,该函数将在每次触发keydown事件时执行。因此,每次都会执行内部的变量声明。这就是为什么它总是初始值。尝试将索引声明为全局变量。用户必须首先单击gridview中的一行以设置第一个索引。确定它可以工作,但为什么当我在gridview中获取新的总行时,即使其中有行,仍然返回0?我也将它放在函数“var totalRows=””之上;如果没有所有的代码,无论是服务器端还是客户端,都很难回答这个问题。您可以将“”替换为网格“数据源”的Count属性