我来做百科(第七天)
先是“我的贡献”,给内容添加一个根据会员查找方法就是了。
至于“我的评论”,也是给评论添加一个根据会员查找方法,差不多。
接着先整理一下代码吧。先是给“退出”写一个控件,在LinkButton的OnClick事件里添加退出功能和跳转功能。还有一个问题困扰我很久的,就是怎么防止重复提交。对于刷新重复提交那种我都是提交成功后直接Redirect页面,还有另一种比较麻烦的是网络延迟造成的多次点击提交。开始我是在按钮控件OnClientClick上disabled掉按钮,到发现这样提交后不会执行按钮的OnClick事件,于是到处问,终于在csdn那里找到答案,laogui327 告诉我这样:
太好了,终于找到在按钮本身就能解决的方法,感谢!
于是根据这个写了个只能提交一次的控件:
{
private string _textonclick = "正在提交中,请等待……";
protected override void Render(HtmlTextWriter writer)
{
this.OnClientClick += "this.value=\"" + _textonclick + "\";this.disabled = true;" + Page.GetPostBackEventReference(this);
base.Render(writer);
}
public string TextOnClick
{
set { _textonclick = value; }
}
}
不知有没有其他办法,但这是我找到最好的了。
立即在发表评论那里用一下,ok!放一个验证控件吧,但问题来了,验证的程序居然会放到自己定义的代码后面,即:
Faint!搞了一阵,也不知道怎么能把自定义的OnClientClick放得更后一点了,郁闷。看来验证控件不能用了,还有我还有js,不气馁。于是在自定义的ButtonSubmitOnce上再添加一点东西:
/// 只能提交一次的按钮
/// </summary>
public class ButtonSubmitOnce : Button
{
private string _textonclick = "正在提交中,请等待……";
private string _clientcheck;
protected override void Render(HtmlTextWriter writer)
{
StringBuilder temp = new StringBuilder();
temp.Append(this.OnClientClick);
if (!string.IsNullOrEmpty(_clientcheck)) temp.Append("if(!").Append(_clientcheck).Append(") return false;");
temp.Append("this.value=\"").Append(_textonclick).Append("\";this.disabled = true;").Append(Page.GetPostBackEventReference(this));
this.OnClientClick = temp.ToString();
base.Render(writer);
}
public string TextOnClick
{
set { _textonclick = value; }
}
public string ClientCheck
{
set { _clientcheck = value; }
}
}
这样给ClientCheck赋一个返回bool的检测js函数就可以了。
但为什么提交这么一点东西会这么慢啊,带着疑问打开源码一看,一大串的VIEWSTATE,怪不得。怪不得老赵某篇文章中说不用VIEWSTATE啦,我也要试一下。这一页会用到VIEWSTATE的地方就是发表评论嘛,因为会在后台检测数据,有错的话会回到原来那页显示出错信息。像以前asp那样用一个alert和history.back()就可以了嘛。一切准备就绪,在ie测试,没问题,不错嘛,在ff测试,出问题了。页面后退后按钮仍然是disabled状态,这怎么办啊。难道要放弃其中一个?搞了很久没搞好,之后又用回VIEWSTATE,痛苦,崩溃,谁好心告诉我怎么搞啊。
还有一个问题是多个提交按钮时设置默认提交按钮的问题。我问了一下,有人告诉我解决方法是:
在onkeydown中处理,但这样视觉上还是有问题,因为onfocus会有一个视觉效果的,所以想能不能用onfocus解决。我想了个方法,原理是当textbox取得焦点,立即给button焦点,再把焦点返回给textbox。貌似可以,试一下,发现不行,原来实际上是一个死循环。郁闷了一下,看来还是用大伙的方法吧。试了一下还是不行,因为enter的时候虽然是执行了onkeydown的程序,但同时默认的提交也触发了。痛苦,崩溃,谁好心告诉我怎么搞啊。
一轮折磨之后,还是先休息一下啦。
转载于:https://www.cnblogs.com/cloudgamer/archive/2008/01/24/1050805.html
我来做百科(第七天)相关推荐
- CDN百科第七期 | 关于CDN的原理、术语和应用场景那些事
简介:关于CDN,想必你一定看过很多官方的解释.今天,CDN百科第七期,将用一篇3844字的文章,来带你了解CDN的诞生.术语.原理.特征以及应用场景,看完这篇文章,相信你将会对CDN这项互联网基础设 ...
- 我来做百科(第二十天) D
有朋友(注册会员)告诉我,她忘记密码了.对哦,要做一个"找回密码"的系统才行. 又找了一下资料,看到一篇不错的文章,介绍了"选择何种方式帮助用户找回密码",他的 ...
- 我来做百科(第九天)
今天做一下后台吧.先是页面,以前用的太丑了,还是另找一个吧.网上找了一下,看到有人说动网那个后台不错,于是找来看看.搞了一轮,终于打开后台页面,一看,页面是可以啦,但作为后台是太繁杂了吧.于是改啊改, ...
- 我来做百科(第二十天) C
我看到百度贴吧的评论,在会员后台点击评论后会自动跳到该评论所在的页码的页面,而不是简单的锚.我也要做做看.在csdn问了问,估计直接根据id直接取分页数据的话会比较麻烦,所以决定做法是先找到评论所在页 ...
- (完结)Unity游戏开发——新发教你做游戏(七):Animator控制角色动画播放
文章目录 一.前言 二.Animator状态机组织 三.过渡条件 四.用代码设置过渡条件,触发动画播放 五.CharacterAniLogic.cs完整代码 一.前言 文章列表 Unity游戏开发-- ...
- 用Mediawiki做百科网站资源大参考
MediaWiki简易安装教程 **关于mediawiki 一些好的资料: http://codex.wordpress.org.cn/Mediawiki%E5%BB%BA%E7%AB%99%E7%B ...
- 做自己——鬼脚七自媒体第一季
<做自己--鬼脚七自媒体第一季> 基本信息 作者: 鬼脚七 出版社:人民邮电出版社 ISBN:9787121207105 上架时间:2013-6-25 出版日期:2013 年7月 开本:1 ...
- 每周一书-《做自己-鬼脚七自媒体第一季》
首先说明,本周活动有效时间为2016年10月11日到2016年10月16日.本周为大家送出的书是由电子工业出版社出版,鬼脚七著<做自己-鬼脚七自媒体第一季>. 鬼脚七 何许人也?当然不 ...
- 我来做百科(第一天)
近来一个朋友跟我说想他做一个web2.0的网站,突然自己也想做一个,到百度找找什么叫web2.0吧.打入"web2.0"搜索,没什么头绪,还是先到知道看看,点第一个,是百科,哦,很 ...
- 用python的tkinter做游戏(七)—— 双人射击游戏Demo(类的应用) 篇
不知不觉这已经是第七篇文章了,今天来谈谈python中类(class)在游戏中的应用. 老规矩,先展现一下之前的几篇博文: 用python自带的tkinter做游戏(一)-- 贪吃蛇 篇 用pytho ...
最新文章
- It--网络生涯去向何方?
- jQuery操作标签--样式、文本、属性操作, 文档处理
- Oracle中类似于isql或osql的命令行工具
- RabbitMQ系列(一)RabbitMQ在Ubuntu上的环境搭建
- iphone降级_ios14.2怎么降级到14.1 ios14.2耗电严重吗[多图]-热门资讯
- 基于xml技术的操作
- 本地项目怎么推送到码云_【重谈npm】当下载一个项目到本地执行npm install报错时应该怎么办...
- python连接不上数据库_绕不过去的Python连接MySQL数据库
- 80x86 register and memory mode
- 大工13秋 c/c++语言程序设计 在线作业3,大工19秋《JavaScript基础教程与应用》在线作业3【满分答案】...
- 为什么++ [[]] [+ []] + [+ []]返回字符串“ 10”?
- ArcMAP 空间连接和相交工具使用
- python选择排序代码_Python 数据结构与算法——选择排序(迭代版、递归版)
- vcf构建idx索引
- excel如何提取图片中的文字?
- 【LeetCode系列】数的奥秘之幂数与完全平方数
- 【Azure 应用服务】NodeJS Express + MSAL 实现API应用Token认证(AAD OAuth2 idToken)的认证实验 -- passport.authenticate()
- 为什么用企业微信做运营
- 判断三角形 java_java中判断是否三角形的方法
- 营销玩法|世界杯期间产品如何提高互动性?
热门文章
- 管理感悟:说说NWT裁员的经历及关键错误
- python文本关联分析,详解Python文本操作相关模块
- matlab卷积反投影,卷积反投影法图象重建.pdf
- java screenframe_一个关于JFrame的问题
- 根据后台日志文件查找错误_linux中find命令根据文件类型来查找
- 谈谈计算机专业职业技能,计算机专业职业技能论文
- pcb设计单点接地示意图_EMC设计之接地、PCB布局布线、屏蔽设计
- 双目摄像头的帧同步输入fsync信号_读源码长知识 | Android卡顿真的是因为”掉帧“?...
- RabbitMQ快速入门python教程
- Notepad++常用插件