dopostback函数

自己公司的产品,页面一般都是用的updatepanel+__dopostback方式开发。这个很容易就可以实现异步操作。但是今天有个功能:页面上下载文件后,点击我们自己的分页控件后提示"未能从服务器分析收到消息"。经过调试,是因为点击了一次下载后。点击下一页还是执行下载操作。这里说一下我们开发页面会在页面上放置一个隐藏域来标识每次的操作是什么。然后根据这个标识来调用不同的方法,然而之前我们每进行一次操作就会清空这个值。但是Response会阻断代码执行,没有清空隐藏域的值,所以每次都是下载操作。这时我把清空的代码置前一点就觉得可以了。但是发现每次还是会保留上次的值。这是因为Response输出流后没有对控件的viewstate进行保留。也就是清空操作实际上没有写入viewstate。所以隐藏域的viewstate自然还是上次的值。这里怎么解决呢?了解__doPostBack函数后。发现他有两个参数。第一个参数是控件的ID,用来表示哪个控件引发了页面的回传,第二个参数是所带的值,这个参数很少用。当提交表单时。Request.Form会多两个参数,我们抓取到__EVENTTARGET这个参数就知道是谁造成页面回传。进而执行我们的逻辑。

    

if (Request.Form["__EVENTTARGET"] == "Pagercontrol1$btnNextPage" || Request.Form["__EVENTTARGET"] == "Pagercontrol1$btnGoPage")
            {
                hidCommand.Value = "";
            }
            switch (hidCommand.Value)
            {
                case "doOpenAccept":
                    DoOpenAccept();
                    break;
            }

dopostback函数

时间: 2024-08-27 16:55:15

dopostback函数的相关文章

ie 10 11 dotnet4.0服务器控件的不兼容

.net4.0  识别不了 ie10和ie11 在网上找了方法 在网站下  添加 App_Browsers 文件夹  试了一下 ,没有成功, 然后下了.net的补丁,提示错误 打不上补丁. 研究了一下 ,发现自己的.net4.0版本过低,下了一个最新版本的.net4.0  然后在装补丁 就ok了. 估计 网站里添加  App_Browsers 文件夹没有解决问题也是因为.net4.0版本过低,自己没有试过. 造成这个问题的主要原因是  .net4.0 里的  自动产生 dopostback() 

ASP.NET 解决在点击Button执行服务器事件之前验证用户输入并阻塞

在网站项目开发时,为了减少用户的错误性的操作,很多时候我们都需要做一些必要的JS验证来提醒用户,比如:"输入的值不符合规则,请重新输入"."提交后无法修改,您确定要继续吗?"友好性的提示. 这时候我们想到了Button有一个客户端的点击事件(OnClientClick),大家知道,ASP.NET 页面ASPX页面被创建的时候会生成 一段代码 <input type="hidden" name="__EVENTTARGET"

js高阶函数

map()方法定义在JavaScript的Array中,我们调用Array的map()方法,传入我们自己的函数,就得到了一个新的Array作为结果: function pow(x) { return x * x; } var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9]; arr.map(pow); // [1, 4, 9, 16, 25, 36, 49, 64, 81] reduce()把一个函数作用在这个Array的[x1, x2, x3...]上,这个函数必须接收两个

Django url 标签和reverse()函数的使用(转)

原文:http://www.yihaomen.com/article/python/355.htm 使用url标签和reverse()函数,可以避免在模板和view中对url进行硬编码,这样即使url改变了,对模板和view也没有影响 起初用django 开发应用的时候,完全是在urls.py 中硬编码配置地址,在views.py中HttpResponseRedirect()也是硬编码转向地址,当然在template 中也是一样了,这样带来一个问题,如果在urls.py 中修改了某个页面的地址,

Python2.7-内置函数

具体参见:https://docs.python.org/2/library/functions.html#file 1.进制转换:bin(x), oct(x), hex(x) 把一个十进制数分别转换为2.8.16进制 2.字符转换:chr(x)将数字(255以内不报错,128以后无字符)转换为对应ASCII字符, unichr(x)将数字转换为unicode, ord(x) 将字符转数字与前两个相反, unicode(obj, [encoding, [error]]) 用encoding解码o

linux Shell函数

Shell函数类似于Shell脚本,里面存放了一系列的指令,不过Shell的函数存在于内存,而不是硬盘文件,所以速度很快,另外,Shell还能对函数进行预处理,所以函数的启动比脚本更快. 1.函数定义 1 2 3 4 function 函数名() {     语句     [return] } 关键字function表示定义一个函数,可以省略,其后是函数名,有时函数名后可以跟一个括号,符号"{"表示函数执行命令的入口,该符号也可以在函数名那一行,"}"表示函数体的结

pythonの函数学习笔记(一)

函数是可以实现一些特定功能的小方法或小程序定义函数function的方法:def function_name(arg1,arg2[,...]): statement [return value]注意事项:1.def开头,代表定义函数,def和函数名中间要敲一个空格:2.返回值不是必须的,如果没有renturn语句,则默认返回值None:3.函数名必须以下划线或字母开头,可以包含任意字母.数字或下划线的组合,区分大小写且不能是保留字: py使用名称空间的概念存储对象,这个名称空间就是对象作用的区域

条件、循环、函数定义、字符串操作练习

注意标准库的两种导入与使用方式,建议大家采用<库名>.<函数名>的方式. 对前面的代码进行优化,用for,while,if,def实现: 用循环画五角星 1 import turtle 2 3 turtle.fillcolor("red") 4 turtle.begin_fill() 5 for i in range(5): 6 turtle.forward(100) 7 turtle.right(144) 8 turtle.end_fill() 用循环画同心圆

sql常用格式化函数及字符串函数

一.常用格式化函数 1.日期转字符串 select to_char(current_timestamp, 'YYYY-MM-DD HH24:MI:SS') //2017-09-18 22:41:50 YYYY:年(4和更多位) MM:月份号(01-12) DD:一个月里的日(01-31) HH24:一天的小时数(00-23) MI:分钟(00-59) SS:秒(00-59) 2.字符串转日期 select to_date('2017-09-18','YYYY-MM-DD') //2017-09-