求指教:js调用后台方法问题

__lhy 2014-08-07 04:34:26
<script type="text/javascript">
var lastRowSelected=null;
function GridView_selectRow(row,textlen)
{
if(textlen>0)
if(lastRowSelected!=row)
{
if(lastRowSelected!=null)
lastRowSelected.style.fontWeight = 'normal';
row.style.fontWeight = 'bold';
lastRowSelected=row;
}
}
function GridView_setState(No)
{
var v='<%=SetControlPermissionToState("'+No+'") %>';
alert(v);
}
</script>


 protected string SetControlPermissionToState(string strNo)
{
CheckBoxList1.Items[0].Selected = true;
数据库操作..给asp控件赋值..
return strNo;
}

问题描述:
通过GridView的GridView1_RowDataBound触发执行
string strEvent = string.Format("GridView_setState('{0}');", strNo);
e.Row.Attributes.Add("onclick", strEvent);
发现这句 CheckBoxList1.Items[0].Selected = true;被执行了两次 后再点击GridView1行 没有触发事件 请问如何触发设置asp.net控件值?
...全文
197 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
bxq_2461553677 2014-08-12
  • 打赏
  • 举报
回复
用javaScript打开新窗口显示信息 protected void Page_Load(object sender, EventArgs e) { OpenWebFormSize("Add.aspx", 250, 230, 10, 20); } // 打开指定大小的新窗体 // <param name="url">地址</param> // <param name="width">宽</param> // <param name="heigth">高</param> // <param name="top">头位置</param> /// <param name="left">左位置</param> public static void OpenWebFormSize(string url, int width, int heigth, int top, int left) { string js = @"<Script language='JavaScript'>window.open('" + url + @"','','height=" + heigth + ",width=" + width + ",top=" + top + ",left=" + left + ",location=no,menubar=no,resizable=yes,scrollbars=yes,status=yes,titlebar=no,toolbar=no,directories=no');</Script>"; HttpContext.Current.Response.Write(js); }
  • 打赏
  • 举报
回复
引用 5 楼 jshi123 的回复:
<%=SetControlPermissionToState("'+No+'") %> 这段代码是在服务端生成页面时执行的。客户端调用js的时候并不会执行它。
没听说这样可以读取gridview里面值的。。
一个大猴子 2014-08-10
  • 打赏
  • 举报
回复
$.ajax({ type:"post", url:"/ajax.aspx?act=getnews", dataType:"html", data:"", success:function(result) { 返回数据是的操作 } }); 后台用request[“”]接收,判断URL传过来的值,如果判断条件多就用Switch()case,case里面调用函数。 函数返回后,用个什么.write()返回,前台自动接收。。前台接收数据,你想怎么弄就怎么弄
Im_Sorry 2014-08-07
  • 打赏
  • 举报
回复
百度 ajax ,有示例!!!
jshi123 2014-08-07
  • 打赏
  • 举报
回复
那说明你的Grid上还有其它点击事件,或者你的代码没贴全。 你把alert去掉,看还有有提示吗?
__lhy 2014-08-07
  • 打赏
  • 举报
回复
引用 4 楼 jshi123 的回复:
不会的,你看浏览器源码,var v='..' 后面是什么?


var v=''+No+'';
但是每次点击GridView行 弹出的都是正确的No值



jshi123 2014-08-07
  • 打赏
  • 举报
回复
<%=SetControlPermissionToState("'+No+'") %> 这段代码是在服务端生成页面时执行的。客户端调用js的时候并不会执行它。
jshi123 2014-08-07
  • 打赏
  • 举报
回复
不会的,你看浏览器源码,var v='..' 后面是什么?
__lhy 2014-08-07
  • 打赏
  • 举报
回复
引用 2 楼 xxoome 的回复:
<%=SetControlPermissionToState("'+No+'") %>这样是不能直接读取服务器变量的
引用 1 楼 jshi123 的回复:
js调用后台方法要用ajax 这样写的话:<%=SetControlPermissionToState("'+No+'") %> 后台SetControlPermissionToState收到的参数永远是字符串:'+No+'
读取到了 alert每次弹出的对话框都是选中的No值 就是中间的代码没有得到执行(数据库读取给asp.net控件赋值),请问这是什么原因?
十三- 2014-08-07
  • 打赏
  • 举报
回复
<%=SetControlPermissionToState("'+No+'") %>这样是不能直接读取服务器变量的
jshi123 2014-08-07
  • 打赏
  • 举报
回复
js调用后台方法要用ajax 这样写的话:<%=SetControlPermissionToState("'+No+'") %> 后台SetControlPermissionToState收到的参数永远是字符串:'+No+'

62,054

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧