无法将类型为“System.Web.UI.LiteralControl”的对象强制转换为类型

 

使用GridView的时候,相信很多朋友都遇到过“无法将类型为“System.Web.UI.LiteralControl”的对象强制转换为...类型”

在一次项目中我在TemplateField列中加入一个imagebutton控件,在RowDataBound事件中使用(( System.Web.UI.WebControls.ImageButton)e.Row.Cells[2].Controls[0]).Style.Add("FILTER", "gray");

结果编译时 报上述错误

后改成:((System.Web.UI.WebControls.ImageButton)e.Row.Cells[2].FindControl("btnLocat")).Style.Add("FILTER", "gray");编译通过!

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


 1         protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
2 {
3 if (e.Row.RowType == DataControlRowType.DataRow)
4 {
5 if (e.Row.RowState == DataControlRowState.Normal || e.Row.RowState == DataControlRowState.Alternate)
6 {
7 ((LinkButton )e.Row.Cells[10].FindControl ("LinkButton3")).Attributes.Add("onclick", "javascript:return confirm('你确认要删除作物:" + e.Row.Cells[1].Text + "的相关信息吗?')");
8 }
9 }
10 }

这里的区别是:Controls[0]和FindControl(id) 。.NET智能提示:

Controls[0]为System.Web.UI.ControlCollection 类,是UI层次结构中服务器控件的子控件。

FindControl()的功能是在当前命名容器中搜索指定ID的服务器控件。

这样就非常清楚了两者的作用,因为TemplateField中添加的控件是GridView这个容器中的控件而非子控件,而buttonfield则是属于子控件。但是当buttonfield强制转换为TemplateField列后就不再是子控件了。

Gridview控件的RowDataBound事件使用中 无法将类型为“System.Web.UI.LiteralControl”的对象强制转换为类型的更多相关文章

  1. 保存图片控件上的图片到本地 出现错误:无法将类型为“System.Windows.Media.Imaging.BitmapFrameDecode”的对象强制转换为类型“System.Windows.Media.Imaging.BitmapImage”。

    保存图片控件上的图片到本地 出现错误:无法将类型为“System.Windows.Media.Imaging.BitmapFrameDecode”的对象强制转换为类型“System.Windows.M ...

  2. 自动为DEV GridView控件添加SizeChanged事件

    实现gdv设置的抽象对象,不用每个gdv控件都添加sizechanged事件,只需执行gdc绑定sql函数,在其中会自动添加SizeChanged事件. //2016.5.13 by sngk //根 ...

  3. devexpress中gridview控件编辑时改变输入法状态

    在win7环境下使用Devexpress中的SpinEdit控件,切换成中文[简/繁]输入法输入数字键时有不少输入法会重复产生数字如输入1会变成11,输入123会变成112233.使用SpinEdit ...

  4. .NET中使用GridView控件输入数据时出现“ Index was out of range. Must be non-negative and less than the size of the collection. Parameter name: index"的问题

    在.NET中使用GridView控件的在线编辑数据时,出现了“ Index was out of range. Must be non-negative and less than the size ...

  5. GridView控件点击单元格如何获取该列的列标题

    本博文Insus.NET教你实现在GridView控件中,用mouse点击某单元格之后,希望能获取到该列的列标题. 创建一个网页,创建一个GridView控件: 去cs绑定数据给GridView控件: ...

  6. 禁用GridView控件前5行记录

    禁用GridView控件前5行记录. 应该在GridView控件写OnRowDataBound事件: 如果你只想禁用删除铵钮的话: 网页运行效果: 如果你想把整行禁用的话,可以这样写: 运行效果: 禁 ...

  7. “System.Web.UI.WebControls.Literal”不允许使用子控件

    今天在写下面的代码时遭遇错误——“System.Web.UI.WebControls.Literal”不允许使用子控件('System.Web.UI.WebControls.Literal' does ...

  8. GridView控件RowDataBound事件中获取列字段值的几种途径

    前台: <asp:TemplateField HeaderText="充值总额|账号余额"> <ItemTemplate> <asp:Label ID ...

  9. GridView控件的属性、事件

    GridView控件的属性 属性 描述 AllowPaging 指示该控件是否支持分页. AllowSorting 指示该控件是否支持排序. AutoGenerateColumns 指示是否自动地为数 ...

  10. 在GridView控件内文本框实现TextChanged事件

    本篇是教你实现GridView控件内的TextBox文本框实现自身的TextChanged事件.由于某些功能的需求,GridView控件内嵌TextBox,当TextBox值发生变化时,触发TextC ...

随机推荐

  1. webrtc windows编译记录

    //cmd set path=D:\zzh\depot_tools;%path% set DEPOT_TOOLS_WIN_TOOLCHAIN 0 set vs2022_install=C:\Progr ...

  2. 查询正在执行的SQL的数据库名和表名

    创建限制0.5个CPU和0.5G内存的MySQL容器 docker run -itd --name mysql --cpu-quota=50000 --memory 512M --rm -p 3306 ...

  3. jmeter分布式压测配置

    首选 压力机A,压力机B,压力机C,   压力机A作为控制台    压力机B,压力机C作为分布式的测试机 压力机Aip:172.16.23.69, 压力机Bip:192.168.184.128 压力机 ...

  4. 渗透测试工具sqlmap基础教程 【转】

    转载请注明出处:http://blog.csdn.net/zgyulongfei/article/details/41017493 作者:羽龍飛 本文仅献给想学习渗透测试的sqlmap小白,大牛请绕过 ...

  5. 93、springboot 和springcloud版本对比

    https://start.spring.io/actuator/info 建议转为json

  6. RabbitMQ学习第七章:消息确认机制之事务机制

    RabbitMQ消息确认机制之事务机制. RabbitMQ中,我们可以通过持久化数据 解决RabbitMQ服务器异常 的数据丢失问题. 问题:生产者将消息发送出去,消息到底有没有到达RabbitMQ服 ...

  7. 面试视频知识点整理1-12(渲染机制,js运行机制,页面性能,错误监控)

    技巧(赞美面试官研究的比较深) 1.渲染机制 什么是DOCTYPE及作用? DTD(文档类型定义)是一系列的语法规则,用于定义文件类型.浏览器会根据它来判断文档类型,决定使用何种协议来解析以及切换浏览 ...

  8. 【SQL Server】numeric——精确数字的数据类型

    NUMERIC数据类型是一种精确数字数据类型. numeric是标准sql的数据类型,格式是numeric(m,n).最多精确位数为38位,其中m表示总位数,n表示保留的小数点位数. 参数 含义 默认 ...

  9. 【SQL Server】存储过程带参数输出——output

    在SQL Server 中,如果要用一个存储过程返回字符串应该怎么做?用output参数. 错误方式 接下来,展示一下,常见的错误方法 CREATE PROCEDURE testString AS B ...

  10. Pytorch————学习1

    torch.nn  仅支持小批量.整个torch.nn程序包仅支持作为小批量样本的输入,而不支持单个样本. 例如,nn.Conv2d采用的是4D张量:nSamples x nChannels x He ...