问题描述
privatestaticTextBoxgrprotectedvoidPage_Load(objectsender,EventArgse){gr=TextBox1;}[WebMethod]publicstaticstringGet(){gr.Text="1111";return"";}
functionad(){$.ajax({type:"post",url:"WebForm2.aspx/Get",data:"{}",cache:false,contentType:"application/json;utf-8",dataType:"json",success:function(data){//}});}
其实我是突然奇想,我想比如我在前台用ajax向后台发送请求,然后后台处理这个请求的时候,顺便把某个控件的值改了..因为我之前了解过静态方法也可以操作控件的,所以就测试了一下,发现不成功?这个是什么原因?是不是asp.net的机制问题啊,
解决方案
解决方案二:
对了,我想问,我下面的写法跟上面的有什么本质的不同?privatestaticTextBoxgr;protectedvoidPage_Load(objectsender,EventArgse){p=this;gr=TextBox1;inti();}privatestaticvoidinti(){gr.Text="111111";}
我这样是可以给控件赋值的
解决方案三:
突发奇想是好的,但先了解下B/S机制先。。。。
解决方案四:
用ajax,你只能刷新ajax包住的区域,其他部分不刷新页面是不会改变的
解决方案五:
引用2楼starfd的回复:
突发奇想是好的,但先了解下B/S机制先。。。。
所以说,我那上面就问了,是不是asp.net的机制问题,我这个就不是很懂了...说说
解决方案六:
引用3楼Z65443344的回复:
用ajax,你只能刷新ajax包住的区域,其他部分不刷新页面是不会改变的
如何理解ajax包住的区域..比如我上面的代码<metahttp-equiv="Content-Type"content="text/html;charset=utf-8"/><title></title><scriptsrc="jquery-1.9.1.min.js"></script><script>functionad(){$.ajax({type:"post",url:"WebForm2.aspx/Get",data:"{}",cache:false,contentType:"application/json;utf-8",dataType:"json",success:function(data){}});}</script></head><body><formid="form1"runat="server"><ahref="#"onclick="ad()">dasdwqeq</a><asp:TextBoxID="TextBox1"runat="server"Text="ddd"></asp:TextBox></form></body></html>
这个怎么知道ajax包含的区域在哪
解决方案七:
把web服务跟asp.net页面混为一谈,是很荒唐的。10年前有可笑的ajaxpro在aspx里边弄什么方法,如今又看到你这种程序了。奉劝你一句,web服务器单独写到ashx中。因为只有这个“ashx”机制才是它适配的。
解决方案八:
楼上的太能喷了,不懂装懂,aspx和ashx只是扩展不同,里面继承的对象不同,aspx带有反射机制,可以将附带的.cs类反射并处理里面的page_load方法,仅此而已。至于程序想怎么写,那就看程序员的风格,比如我的编程风格,所有代码都写到.cs类中,整个网站没有一个aspx和ashx页面,什么都没有,只有一个web.config,和引用了几个dll,所有代码都封装到dll里的类里。ashx如果加上一个反射的模块,照样做成aspx,至于在aspx里写方法怎么了,谁规定的处理程序方法非得写在ashx里???至于要想说执行效率,我看就别提了,只要做到最高十几毫秒之内的执行时间就没必要矫情了,到时候再得了强迫症。