动态生成GridView时,加入DataKeyNames属性,回调时出错解决方法
早上看到有位同学问关于自动生成GridVie并且添加DataKeyNames属性后
回调页面时,出现错误异常.下面是我实现的方法。注意一点。就是数据绑定的时间。
要是先绑定,再添加到div1中,回调页面时,就会出错。
页面代码:
<div runat="server" id="div1" enableviewstate="false">
</div>
<asp:Button ID="Button1" runat="server" οnclick="Button1_Click" Text="Button" />
cs代码:
protected void Page_Load(object sender, EventArgs e)
{
bindGV();
}
private static DataTable NewMethod()
{
DataTable dt = new DataTable();
dt.Columns.Add("id", typeof(int));
dt.Columns.Add("name", typeof(string));
for (int i = 0; i < 5; i++)
{
DataRow dr = dt.NewRow();
dr["id"] = i;
dr["name"] = "Name" + i;
dt.Rows.Add(dr);
}
return dt;
}
private void bindGV()
{
div1.Controls.Clear();
int t = 0;
while (t < 3)
{
GridView gv = new GridView();
gv = CreateSuperGrid();
div1.Controls.Add(gv);
t++;
}
for (int i = 0; i < div1.Controls.Count;i++ )
{
//我这里是先把GridView加入div1中,之后才进行数据绑定
((GridView)div1.Controls[i]).DataSource = NewMethod();
((GridView)div1.Controls[i]).DataBind();
}
}
private GridView CreateSuperGrid()
{
GridView gv = new GridView();
gv.AutoGenerateColumns = false;
gv.EnableViewState = true;
gv.DataKeyNames = new string[] { "id" };
BoundField bf = new BoundField();
bf = new BoundField();
bf.HeaderText = "序号";
bf.DataField = "id";
gv.Columns.Add(bf);
BoundField bf2 = new BoundField();
bf2.HeaderText = "名称";
bf2.DataField = "name";
gv.Columns.Add(bf2);
CommandField cf = new CommandField();
cf.ShowSelectButton = true;
gv.Columns.Add(cf);
gv.SelectedIndexChanging += new GridViewSelectEventHandler(GridView1_SelectedIndexChanged);
return gv;
}
//用做回调页面用的
protected void Button1_Click(object sender, EventArgs e)
{
}
protected void GridView1_SelectedIndexChanged(object sender, GridViewSelectEventArgs e)
{
string value = ((System.Web.UI.WebControls.GridView)(sender)).DataKeys[e.NewSelectedIndex].Value.ToString();//这里可以看到取到的id值
}
转载于:https://www.cnblogs.com/yijie/archive/2008/09/04/1283883.html
动态生成GridView时,加入DataKeyNames属性,回调时出错解决方法相关推荐
- myeclipse连接mysql生成数据表时中文字符乱码或问号(解决方法)
myeclipse连接mysql生成数据表时中文字符乱码或问号(解决方法) 参考文章: (1)myeclipse连接mysql生成数据表时中文字符乱码或问号(解决方法) (2)https://www. ...
- JavaScript中的回调地狱及解决方法
JavaScript中的回调地狱及解决方法 1.回调地狱 在使用JavaScript时,为了实现某些逻辑经常会写出层层嵌套的回调函数,如果嵌套过多,会极大影响代码可读性和逻辑,这种情况也被成为回调地狱 ...
- mysql出现error 2003_mysql启动时出现ERROR 2003 (HY000)问题的解决方法
一.问题描述 在启动MYSQL时出现问题:"ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost' (10061)& ...
- 回调函数与回调地狱及其解决方法 | JavaScript
JavaScript中的回调函数与回调地狱及其解决方法 以下为整理的思维导图 图片版+文字版 文末附有参考文章链接 知识点思维导图版 一.什么是回调函数 1.MDN的定义 回调函数是作为参数传给另一个 ...
- FTP连接时出现“227 Entering Passive Mode” 的解决方法(附加实际案例)
FTP连接时出现"227 Entering Passive Mode" 的解决方法 前段时间在本地的win7搭建了一个简单的FTP服务器用来测试在linux服务器上生成的批量报文, ...
- VM平台添加设备时提示“无效的License组件”的解决方法
VM平台添加设备时提示"无效的License组件"的解决方法 一般在添加设备时系统提示"无效的License组件"都是由于平台缺少对应的License组件导致的 ...
- android ellipsize 多行,android TextView多行文本(超过3行)使用ellipsize属性无效问题的解决方法...
android TextView多行文本(超过3行)使用ellipsize属性无效问题的解决方法 布局文件中的TextView属性 复制代码 代码如下: android:id="@+id/b ...
- Windows下在Django中创建项目时ImportError: No module named django.core解决方法
Windows下在Django中创建项目时ImportError: No module named django.core解决方法 今天在对照<Python编程:从入门到实践>学## 标题 ...
- ORA-04030: 在尝试分配...字节(...)时进程内存不足的原因分析解决方法
ORA-04030: 在尝试分配...字节(...)时进程内存不足的原因分析解决方法 参考文章: (1)ORA-04030: 在尝试分配...字节(...)时进程内存不足的原因分析解决方法 (2)ht ...
最新文章
- 2个422 并联一个总线_株洲新添2个全国“一村一品”示范村,一个在炎陵
- mysql2005备份_创建完整数据库备份 - SQL Server | Microsoft Docs
- NeurIPS 2019公布获奖论文!新增杰出新方向奖项,微软华裔研究员斩获经典论文...
- 系统集成项目管理工程师软考辅导——3年真题透解与全真模拟
- XML-RPC远程方法调用
- 关于bin和obj文件夹。debug 和release的区别(转)
- No space left on device 解决 Cydia 安装应用错误
- (码友推荐)2018-07-12 .NET及相关开发资讯速递
- 依赖管理和Maven
- Js实现异步刷新(原创)
- Linux工作笔记-查看tcp与udp端口并对比Windows简单分析
- 如何删除在Github中创建的项目
- busybox源码剖析(1)---whoami.c
- SQLSERVER误删除了Windows登录用户验证方式使用Windows身份验证的解决方法
- css将空的div撑开,如何使用css将空的浮动div伸展到可用的全高度?
- java简单烟花代码_JavaScript实现的简单烟花特效代码
- 借助百度识图爬取数据集
- laravel 语言包
- rmmod命令卸载驱动过程详解
- Magento二次开发哪家好呢?
热门文章
- rpm方式安装mysql5.7.24_linux centOS 7安装mysql 5.7.24
- rpm怎样在win安装mysql_centos7.6安装mysql的正确步骤
- is this mysql server_远程连接MySQL数据库报错:is not allowed to connect to this MYSQL server的解决办法...
- mysql中正则表达式的用法_Mysql中正则表达式Regexp常见用法
- html5 data url,HTML5 / Javascript – DataURL到Blob和Blob到DataURL
- HDOJ-2062 :Subset sequence(DP)
- OpenCV中的霍夫线变换、概率霍夫线变换
- python基础---元组、字典、函数、文件、异常
- 读自动驾驶激光雷达物体检测技术(Lidar Obstacle Detection)(1):Stream PCD流式载入激光点云数据
- 基于深度学习的目标检测综述