GridView rowcommand调用两次的bug

如何在GridView的RowCommand事件中获取当前的GridViewRow 由于事件参数 GridViewCommandEventArgs 并不公开Row属性指示当前行,(DataGridCommandEventArgs 公开 Item 属性以获取当前 DataGridItem,不知 ASP.NET Team 是如何考虑这一设计的),因此需要一点“技巧” 阅读详情
gridview中的按钮类型用如果用image,触发rowcommand事件时会被执行两次,据说只出现在IE6,IE5、firefox等没有问题,我的IE7也存在同样问题,似乎和IIS版本也有关系,期待微软的补丁。
   今天下午一遇到一个问题,gridview 的rowcommand事件会被执行两次,postback也会执行两次,最初还怀疑是调试器的问题,经过察看日志,确定真的被执行了两次。
   代码检查了n遍,逐句排除,仍没有找到问题,已经开始怀疑是鼠标了,抓包发现确实是发了两次请求,并且第一次请求没有被处理。偶尔一次把buttontype从image换到button,意外的好了,只被执行了一次,看来问题只出在Imagebutton。
   通过google搜索发现有不少人遇到了此问题,确定是asp.net的bug。点击按钮会向iis发两次请求,第一次比第二次少八个字节,导致第一次请求不成功,接着会重新发一次,因此最容易想到的就是忽略第一次请求,下面的第一种解决方式就是如此。
   目前有两个解决方案,都不完善,第一个是在rowcommand事件中加入下面的语句:
GridView rowcommand调用两次的bug - 花花 - 我的太阳 if (Request[ " x " ] == null && Request[ " y " ] == null )
GridView rowcommand调用两次的bug - 花花 - 我的太阳            Response.End();
GridView rowcommand调用两次的bug - 花花 - 我的太阳
通过这条语句,判断图片的坐标,如果其坐标是null,则是第一次请求,因为第一次请求无效,结束他。
   第二个是微软推荐的:尽量不在gridview里面用imagebutton,而用link或者button,如果必须用可以用类似的代码:
GridView rowcommand调用两次的bug - 花花 - 我的太阳 < asp:GridView ID = " GridView1 " runat = " server " >
GridView rowcommand调用两次的bug - 花花 - 我的太阳
< Columns >
GridView rowcommand调用两次的bug - 花花 - 我的太阳
< asp:TemplateField >
GridView rowcommand调用两次的bug - 花花 - 我的太阳
< ItemTemplate >
GridView rowcommand调用两次的bug - 花花 - 我的太阳
< asp:ImageButton runat = server id = " ImageButton1 " CommandName = " Delete "
GridView rowcommand调用两次的bug - 花花 - 我的太阳ImageUrl
= " GridView rowcommand调用两次的bug - 花花 - 我的太阳 " commandargument = ' <%# DataBinder.Eval(Container,
GridView rowcommand调用两次的bug - 花花 - 我的太阳"
RowIndex " ) %> ' OnCommand="ImageButton1_Command" />
GridView rowcommand调用两次的bug - 花花 - 我的太阳
</ ItemTemplate >
GridView rowcommand调用两次的bug - 花花 - 我的太阳
</ asp:TemplateField >
GridView rowcommand调用两次的bug - 花花 - 我的太阳
</ Columns >
GridView rowcommand调用两次的bug - 花花 - 我的太阳
</ asp:GridView >
GridView rowcommand调用两次的bug - 花花 - 我的太阳
GridView rowcommand调用两次的bug - 花花 - 我的太阳GridView rowcommand调用两次的bug - 花花 - 我的太阳
protected void ImageButton1_Command( object sender, CommandEventArgs e) GridView rowcommand调用两次的bug - 花花 - 我的太阳 {
GridView rowcommand调用两次的bug - 花花 - 我的太阳GridView1.DeleteRow(Int32.Parse(e.CommandArgument.ToString()));
GridView rowcommand调用两次的bug - 花花 - 我的太阳}

GridView rowcommand调用两次的bug - 花花 - 我的太阳
把imagebuttong加入到TemplateField中,并且在事件中调用deleterow。
   不知道还有没有更好的解决方案,下面的论坛详细的讨论了这个问题:
http://www.developersdex.com/asp/message.asp?p=1116&r=4641456&page=2第一页讨论的结果是:只有在button的类型是image的情况下才会有此问题,可以略过不看,后面两页有详细的讨论和解决方式。
  ms的东西包装了太多,用起来实在不爽~~早知道一开始就应该用纯的html页面写了,这虽然麻烦点,但是可控性大很多,哎~~
ASP.NET开发的Bug跟踪管理系统 大学的毕业设计,Bug跟踪管理与Bug管理系统。里面还包括了论文及开题报告之类的。供读者下载参考。 立即下载

相关推荐

智能车轮腿组‘定点排雷’科目全解析:从雷区识别到姿态控制

本文深入解析了智能车竞赛轮腿穿越组‘定点排雷’科目的核心技术。从构建鲁棒的视觉识别系统,到融合编码器与IMU进行厘米级定位,再到实现框内高精度旋转的姿态控制,提供了一套完整的从感知到执行的闭环技术方案,助力参赛队伍攻克这一高难度科目。

weixin_29161719的博客 640

asp.net的一个bug的发现和解决

 gridview中的按钮类型用如果用image,触发rowcommand事件时会被执行两次,据说只出现在IE6,IE5、firefox等没有问题,我的IE7也存在同样问题,似乎和IIS版本也有关系,期待微软的补丁。  今天下午一遇到一个问题,gridview 的rowcommand事件会被执行两次,postback也会执行两次,最初还怀疑是调试器的问题,经过察看日志,确定真的被执行了两次。  代

绿色公寓的专栏 375

ASP.NET MVC5 C# Entity Framework 连接 Oracle 数据库

ASP.NET MVC5 C# Entity Framework 连接 Oracle 数据库创建数据库安装 Entity Framework配置数据库连接字符串添加实体模型类添加数据库上下文类添加控制器类运行测试 创建数据库 创建【全局数据库名】为 demodb 的Oracle数据库,用 SYSTEM 用户连接成功后创建【用户名】为 DJIANG 的用户,并授予该用户 DBA 角色 安装 Enti...

idjiang的博客 2537

asp.net button创建控件时出错_更强大的表单控件

原文:https://web.dev/more-capable-form-controls/有了一个新事件,再加上一些自定义元素 API,表单的使用变得更加容易。很多开发者构建自定义表单元素,提供浏览器未内置的控件,或自定义超越内置表单控件的外观与体验。然而,复制 HTML 内置表单控件的特性很难。想一下当你把一个元素加进一个表单时,它自动获得的一些特性:输入框自动加进表单的控件列表...

weixin_39624980的博客 257

大模型在心律失常预测及治疗方案制定中的应用研究报告

目录一、引言1.1 研究背景与意义1.2 研究目的与方法1.3 研究创新点二、大模型技术概述2.1 大模型基本原理2.2 常见大模型类型及特点2.3 大模型在医疗领域的应用现状三、心律失常的术前预测与准备3.1 术前心律失常预测的重要性3.2 大模型在术前预测中的应用案例3.3 基于预测结果的术前准备方案四、术中监测与实时调整4.1 术中监测心律失常的方法与技术4.2 大模型辅助术中决策的机制4.3 实时调整手术方案的策略与实践五、术后恢复与并发症风险预测5.1 术后心律失常的监测与评估5.2 大模型预测术

嵌入式毕设/课设资料清单(速查手册·文档模板·题库,持续更新)→ 见最新文章 1596

【GRASS GIS零基础入门教程】2.1:初识GRASS GIS软件

GRASS GIS是一个强大的计算引擎,用于栅格、矢量和地理空间处理。它支持地形和生态系统建模、水文、数据管理和图像处理。通过内置的时态框架和Python API,它可以进行高级时间序列分析和快速地理空间编程,并针对各种硬件配置的大规模分析进行优化。

智慧空间实验室 847

button作为asp.net服务器控件时在IE提交两次

button作为asp.net服务器控件时在IE提交两次,注册的事件被调用两次

Chuck_qiang的专栏 632

天龙八部TLBB系列 - 网单服务端各目录文件说明【超详细】

专注于Android/Unity和各种游戏开发技巧,以及各种资源分享(网站、工具、素材、源码、游戏等) --- 天龙八部服务端各目录详细说明

空名先生 7631

ASP常见漏洞大全

一、SQL注入漏洞 漏洞简介: 程序员在编写代码的时候,没有对用户输入数据的合法性进行判断,使应用程序存在安全隐患。用户可以提交一段数据库查询代码,根据程序返回的结果,获得某些他想得知的数据,这就是所谓的SQL Injection,即SQL注入。 SQL注入漏洞的几种类型: 1、数字型注入漏洞 例如:http://www.tes

机器的自我探索之旅 1万+

YOLOv11改进策略【卷积层】| ICCV-2023 引入Dynamic Snake Convolution动态蛇形卷积,改进C3k2

基于拓扑几何约束的动态蛇卷积用于管状结构分割DSConv(Dynamic Snake Convolution,动态蛇形卷积)模块的设计主要是为了更好地处理管状结构的分割任务,解决传统卷积在处理细管状结构时的不足。

Limiiiing的博客 1628

PCL基础:getTransformation函数全流程解析与应用实例,一篇文章精通点云变换

在 Eigen 和 PCL 中,getTransformation是一个常用的函数,用于根据输入的平移和旋转信息(如欧拉角或四元数)生成一个仿射变换矩阵(Eigen::Affine3f或 Eigen::Affine3d)。1)在 Eigen 中,可以通过四元数和平移向量构造一个变换矩阵。2)讲解了从四元数转换到欧拉角,或者从欧拉角转换到四元数的方法。

weixin_42896234的博客 1368

记.net 遇到的几个bug

这两个bug都是查了挺久才查到的,随手记是个好习惯。 1.public static CultureInfo GetCultureInfo(string name); 方法,传参错误时,某些操作系统环境会不抛异常。(用于ValidationAttribute校验参数) 本机环境是win10 x64 测试环境是linux,.net core 2.0 修改方案: ValidCulture...

weixin_30377461的博客 206

深度解析:C# Modbus TCP协议解析与异常处理(工控上位机必备)

协议解析要精准:掌握MBAP头和PDU的结构,尤其是常用功能码的请求/响应格式,避免因字节处理错误导致通信失败;异常处理要全面:覆盖通信层、协议层、数据层的所有异常类型,针对工业场景制定重试、重连、滤波等策略;资源管理要规范:使用释放资源,采用连接池复用连接,避免端口泄露;工业场景要适配:结合工控现场的特点(网络波动、电磁干扰、设备忙),优化通信效率和数据处理逻辑。通过以上解析和策略,可确保C#上位机与工业设备的Modbus TCP通信具备高稳定性、高可靠性、高容错性,满足工控领域的严苛要求。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 997

关于Gridview_rowcommand使用的方法

在点击自定义的Button时引发的Gridview_rowcommand事件 首先需要做一下Gridview_rowcreated事件: Protected Sub GridView1_RowCreated()Sub GridView1_RowCreated(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.Gri

wxm0930的专栏 3438

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

GridView RowCommand事件操作Demo Code

//DemoCode1: protectedvoidGridView1_RowCommand(objectsender,GridViewCommandEventArgse){switch(e.CommandName){case"RollBa

Flyear_cheng的专栏 1113

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

GridView.RowCommand 事件 GridView.DataKeys 属性

在单击 GridView 控件中的按钮时,将引发 RowCommand 事件。这使您可以提供一个这样的事件处理方法,即每次发生此事件时执行一个自定义例程。GridView 控件中的按钮也可调用该控件的某些内置功能。若要执行这些操作之一,请将按钮的 CommandName 属性设置为下表中的某个值。

zhuning的专栏 2722

GridView 中RowCommand事件用法

GridView 中RowCommand事件用法<br />//如果我照提示说的把enableEventValidation的值设为False,就获取不到e.CommandArgument的值.<br />    protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)<br />    {<br /><br />        if (e.CommandName == "Del")<br />       

zhenglizhaoboke的专栏 1169

vs2005中gridview的RowCommand事件

vs2005中gridview的RowCommand事件 具体代码如下 protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)    {        //e.CommandArgument获得命令行的索引        if (e.CommandName == "SetNotice"

风也红了的专栏 1277

GridView的RowCommand事件中取得行索引

前台添加一模版列,里面添加一个Button <asp:TemplateFieldHeaderText="测试"> <ItemTemplate> <asp:ButtonID="Button1"Command...

abc0412的博客 486

GridView RowCommand 获取列值

//根据按钮属性,进行操作 protectedvoidGridView1_RowCommand(objectsender,GridViewCommandEventArgse) { if(e.CommandName=="Insert"&&Page.IsValid) { ...

abc0412的博客 345

GridView中的RowCommand事件中的取值问题GridView的RowCommand事件中获取该行DataKey值(转)

需求现象:在RowCommand事件中获取该行DataKey值,以便编辑改行相应的数据; 解决方案: 1)模板列中的LinkButton ,需要绑定其CommandArgument=’<%# Bind(“ID”) %>’,然后在RowCommand事件中获取 绑定: <asp:TemplateField > <asp:LinkButton ID=“deleteSel...

yyb1986423的博客 731

GridView中的RowCommand与Sorting事件的一些问题

MSDN如下描述RowCommand:在单击 GridView 控件中的按钮时,将引发 RowCommand 事件。这使您可以提供一个这样的事件处理方法,即每次发生此事件时执行一个自定义例程。GridView 控件中的按钮也可调用该控件的某些内置功能。若要执行这些操作之一,请将按钮的 CommandName 属性设置为下表中的某个值。“Cancel”“Delete”“Edit”“Pag

乌鸦的博客 1800

gridview设置行号与RowCommand事件中获取行号

<br />aspx页面:<br /> <br /><Columns><br />                    <asp:BoundField DataField="id" HeaderText="id" InsertVisible="False" <br />                        ReadOnly="True" SortExpression="id" Visible="False" /><br />                    <asp:BoundField

handsometone1982的专栏 4420

gridview模板列里,按钮不能触发rowcommand

gridview模板列里,按钮不能触发rowcommand .百度和谷歌了很久都没找到答案.源码如下:前台页面:                              Enabled="False" />             CommandArgument=       CommandName="defaultResume"        Text= />   

ying25135的专栏 2124
上一篇: IE8中使用 window.close()关闭网页时提示框的回避方法
下一篇: sql多行转为一列的合并问题
Mevin
博客等级 码龄18年 27粉丝 3原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值