asp.net的gridview自动分页,翻页后取值问题

qq_42713711 2018-07-17 09:05:07
如题用了gridview自带的分页代码
protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
GridView1.PageIndex = e.NewPageIndex;
GridView1.DataSource = JL;
GridView1.DataBind();
}
然后在RowDataBound中
if (e.Row.RowType == DataControlRowType.DataRow)
{
string id = e.Row.Cells[0].Text;
e.Row.Attributes.Add("ondblclick", "location.href='../record/detail.aspx?Id=" + id + "'");
}
e.Row.Cells[0].Text; 第一页还没问题,翻页以后就取不到值了
求大佬帮忙
...全文
405 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_42713711 2018-07-18
  • 打赏
  • 举报
回复
rotected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
事件中
if (e.Row.RowType == DataControlRowType.DataRow)

e.Row.Cells[x].Text;在取值列隐藏的情况下是取不到值的。
在前台gridview里加DataKeyNames="xxx",xxx为取值列名
后台
string x = GridView1.DataKeys[e.Row.RowIndex].Values["xxx"].ToString();
或string x = DataBinder.Eval(e.Row.DataItem, "xxx").ToString();
就可以取到值了
最讨厌你们这群说话说一半的人装什么优越感,吔屎嘞

引用 5 楼 sp1234 的回复:
在正规的 asp.net 教程中,基本原理的正规说明告诉你了数据结构,
e.Row.DataItem
这个是所绑定的对象,而如果你设置了键值则可以从
GridView1.DataKeys[e.Row.DataItemIndex];
这类地方也可以去查找键值。
qq_42713711 2018-07-17
  • 打赏
  • 举报
回复
引用 5 楼 sp1234 的回复:
在正规的 asp.net 教程中,基本原理的正规说明告诉你了数据结构,
e.Row.DataItem
这个是所绑定的对象,而如果你设置了键值则可以从
GridView1.DataKeys[e.Row.DataItemIndex];
这类地方也可以去查找键值。

string id = DataBinder.Eval(e.Row.DataItem, "id").ToString();
DataRowView drv = (DataRowView)e.Row.DataItem;
string id = drv["ID"].ToString();
不行啊报错,DataBinding:“MODEL.record”不包含名为“id”的属性。
无法将类型为“MODEL.record”的对象强制转换为类型“System.Data.DataRowView”。
qq_42713711 2018-07-17
  • 打赏
  • 举报
回复
引用 8 楼 sp1234 的回复:
对于 Eval 数据绑定来说,你可以自由地设计输出的 htm,例如在列 Template 中可以设计
<asp:Button ID="Button1" runat="server" Text="填报" Visible='<%# GetStatus((string)Eval("DataID"), (int)Eval("ETXA"))=="填报" %>' 
随便自定义属性='<%# GetABC((string)Eval("DataID")) %>'
OnClick="Button1_Click" />

这里就为输出的<input type="button"> 元素自定义了一个“随便自定义属性”的属性,然后可以用页面上的
protected string GetABC(string key)
{
return .........
}
来计算任意复杂的输出文本(比如说一个 url)。

首选地是学会设计模板,而不是写什么 c# 代码。要写 c# 代码你就得先把底层的原理和数据结构搞懂,不能乱猜数据来源。

感觉很说的不一样啊,我是要做双击跳转到详情页,需要取到双击行的记录id,是放在第一列的所以写了e.Row.Cells[0].Text;
  • 打赏
  • 举报
回复
对于 Eval 数据绑定来说,你可以自由地设计输出的 htm,例如在列 Template 中可以设计
<asp:Button ID="Button1" runat="server" Text="填报" Visible='<%# GetStatus((string)Eval("DataID"), (int)Eval("ETXA"))=="填报" %>' 
随便自定义属性='<%# GetABC((string)Eval("DataID")) %>'
OnClick="Button1_Click" />

这里就为输出的<input type="button"> 元素自定义了一个“随便自定义属性”的属性,然后可以用页面上的
protected string GetABC(string key)
{
return .........
}
来计算任意复杂的输出文本(比如说一个 url)。

首选地是学会设计模板,而不是写什么 c# 代码。要写 c# 代码你就得先把底层的原理和数据结构搞懂,不能乱猜数据来源。
  • 打赏
  • 举报
回复
你可以翻翻看你的 asp.net 教程,如果没有重点介绍,那么我建议你把教程扔掉。

学教程的好处就是通过对原理和数据结构设计的学习,当遇到了实际问题,你知道到哪里去找。不会像那些纯粹“自学”的人一样去盲目乱猜地胡乱编程。
qq_42713711 2018-07-17
  • 打赏
  • 举报
回复
引用 3 楼 sp1234 的回复:
找一本正规的、推荐的 asp.net 入门书。你的代码可以看出你是自己乱猜的,不是按照教程正规学的 asp.net 原理。

bing()和GridView1.DataSource = JL; GridView1.DataBind();本来就没什么区别啊数据源用不同的方法赋值不可以?
还是说string id = e.Row.Cells[0].Text; 句有问题?那你给个翻页后取值的句子啊
  • 打赏
  • 举报
回复
在正规的 asp.net 教程中,基本原理的正规说明告诉你了数据结构,
e.Row.DataItem
这个是所绑定的对象,而如果你设置了键值则可以从
GridView1.DataKeys[e.Row.DataItemIndex];
这类地方也可以去查找键值。
qq_42713711 2018-07-17
  • 打赏
  • 举报
回复
引用 2 楼 sp1234 的回复:
定义输出的列内容,首先在模板设计代码中使用 Eval 来进行绑定(绑定 ondblclick 的代码)。先按照最标准的规范来编程,不要在服务器端代码里乱取数据(此时许多数据根本还没有到该赋值的时候)。

求具体方法,还有这些代码也都是在网上看的
  • 打赏
  • 举报
回复
找一本正规的、推荐的 asp.net 入门书。你的代码可以看出你是自己乱猜的,不是按照教程正规学的 asp.net 原理。
  • 打赏
  • 举报
回复
定义输出的列内容,首先在模板设计代码中使用 Eval 来进行绑定(绑定 ondblclick 的代码)。先按照最标准的规范来编程,不要在服务器端代码里乱取数据(此时许多数据根本还没有到该赋值的时候)。
qq_42713711 2018-07-17
  • 打赏
  • 举报
回复
我是不是发错区了……
一、 基本使用方法 4 1.导入Dll文件 4 2.Asp.Net页面控件注册 4 3. Asp.Net页面控件声明 5 4.删除licenses.licx协议文件(盗版) 5 5.功能概述 5 二、 绑定数据(单层) 5 1.使用DataSource属性绑定DataTable 5 2.使用DataSourceID属性绑定SqlDataSource 6 3.使用DataSourceID属性绑定ObjectDataSource 6 4.使用DataSourceID属性绑定LinqDataSource 9 5.使用DataSourceID属性绑定XmlDataSource 10 三、 绑定数据(嵌套树) 10 1.主从数据绑定 10 四、 客户端行维护(新增、修改、删除等) 12 1.编辑状态 12 2.新增 13 3.修改 13 4.删除 13 五、 服务器端行维护(新增、修改、删除等) 13 1.编辑状态 13 2.新增 13 3.修改 15 4.删除 16 六、 数据保存 17 七、 客户端行选择 17 1.选择页面上所有行 17 2.选中指定行或所有行 18 3.获取选中行 18 4.取消页面上所有行的选择 19 5.取消指定行或所有行的选择 19 八、 服务器端行选择 19 1.可选择性设置 19 2.Selection属性 19 九、 客户端行定位 20 1.将焦点转移到编辑行的指定列 20 2.获取焦点行号 20 3.将某行置为可见(未验证) 20 4.跳转到指定页 20 十、 服务器端行定位 21 1.焦点行 21 2.将某行置为可见 21 3.跳转到指定页 21 十一、 客户端数据搜索 21 1.数据过滤 21 十二、 服务端数据搜索 22 1.数据过滤 22 2.数据搜索 22 十三、 分页 23 1.分页条相关属性 23 2.更改分页条按钮属性 26 3.与分页相关操作 26 十四、 客户端排序 26 1.使用SortBy方法排序 26 十五、 服务器端排序 27 1.排序设置 27 2.使用SortBy方法排序 27 3.直接操作GridViewDataColumn排序 28 4.使用GetSortedColumns方法取排序栏位 28 十六、 服务器端数据分组 28 1.数据分组的前提条件 28 2.使用GroupBy方法实现数据分组 28 3.分组的展开与折叠 29 4.判断分组行是否展开 29 5.数据分组的相关设置 29 6.按分组值排序 30 十七、 客户端数据分组 30 1.使用GroupBy方法实现数据分组 30 2.分组的展开与折叠 30 3.判断分组行是否展开 31 4.判断是分组行还是数据行 31 5.用户拖动栏位到分组带实现分组 31 十八、 数据导出 31 1.内置数据导出的前提条件 31 2.支持的数据导出类型 32 3. ASPxGridViewExporter重要属性 32 4.主从ASPxGridView数据导出 32 5.导出到Pdf时中文乱码问题的解决 33 十九、 报表打印 33 二十、 懒加载 33 二十一、 客户端栏位取值与赋值 33 1.使用GetPageRowValues取当前页指定栏位值 33 2.使用GetRowValues取指定行指定栏位值 34 3.使用GetSelectedFieldValues取选中行指定栏位值 34 4.取栏位实例 34 5.使用GetColumnsCount取栏位总数 34 6.使用MoveColumn隐藏和移动栏位 34 7. 使用GetRowKey取行主键值 35 二十二、 服务器端栏位取值与赋值 35 1.取行值 35 2.取列值 36 二十三、 栏位编辑风格 38 1.AspxGridView栏位类型 38 2.GridViewColumn服务器端重要属性 38 3.GridViewColumn服务器端方法 40 4.GridViewCommandColumn:命令按钮列 41 5. GridViewDataColumn:基本数据列 42 6.GridViewDataButtonEditColumn:编辑按钮列 45 7.GridViewDataCheckColumn: 复选框列 45 8.GridViewDataTextColumn:文本列 45 二十四、 栏位格式化 45 二十五、 固定列 45 二十六、 栏位拖动 45 二十七、 栏位合计 46 二十八、 栏位初始值 46 二十九、 栏位可编辑性 46 三十、 栏位数据校验 46 1.行数据校验(编辑状态) 46 三十一、 客户端事件 49 三十二、 服务器端事件 49 1.服务器事件索引 49 2.AutoFilterCellEditorCreate 49 3.AutoFilterCellEditorInitialize 50 4.BeforeGetCallbackResult 50 5.BeforePerformDataSelect 51 6.CancelRowEditing 51 7. CellEditorInitialize 51 7. ClientLayout 52 8. CustomButtonCallback 52 9. CustomCallback 53 10. CustomColumnDisplayText 54 11. CustomColumnGroup 54 12. CustomColumnSort 55 13. CustomDataCallback 56 14. CustomErrorText 57 15. CustomGroupDisplayText 57 16. CustomJSProperties 58 17. CustomSummaryCalculate 58 三十三、 快捷键 59 三十四、 样式 59 1.GridViewStyles重要属性 59 2. GridViewAlternatingRowStyle重要属性 59 三十五、 AspxGridView服务器端重要属性 60 三十六、 AspxGridView服务器端重要方法 60 三十七、 GridViewColumnCollection服务器端重要属性 61 三十八、 AspxGridView客户端重要属性 61 三十九、 AspxGridView客户端常用方法 64 1.PerformCallback 77 四十、 AspxGridView客户端非常用方法 78 四十一、 ASPxClientGridViewColumn(客户端栏位)常用属性 79 四十二、 嵌套AspxGridView的特殊控制 80 1.控制在同一时间只允许一行展开 80 2.SettingsDetail属性设置 80 3.嵌套AspxGridView树展开与折叠(客户端) 80 四十三、 AspxGridView客户端源代码可借鉴点 81 四十四、 AspxGridView服务器端源代码可借鉴点 81
史上最全的AspxGridView使用手记,是word文档(共84页!),下面的目录 一、 基本使用方法 4 1.导入Dll文件 4 2.Asp.Net页面控件注册 4 3. Asp.Net页面控件声明 5 4.删除licenses.licx协议文件(盗版) 5 5.功能概述 5 二、 绑定数据(单层) 5 1.使用DataSource属性绑定DataTable 5 2.使用DataSourceID属性绑定SqlDataSource 6 3.使用DataSourceID属性绑定ObjectDataSource 6 4.使用DataSourceID属性绑定LinqDataSource 9 5.使用DataSourceID属性绑定XmlDataSource 10 三、 绑定数据(嵌套树) 10 1.主从数据绑定 10 四、 客户端行维护(新增、修改、删除等) 12 1.编辑状态 12 2.新增 13 3.修改 13 4.删除 13 五、 服务器端行维护(新增、修改、删除等) 13 1.编辑状态 13 2.新增 13 3.修改 15 4.删除 16 六、 数据保存 17 七、 客户端行选择 17 1.选择页面上所有行 17 2.选中指定行或所有行 18 3.获取选中行 18 4.取消页面上所有行的选择 19 5.取消指定行或所有行的选择 19 八、 服务器端行选择 19 1.可选择性设置 19 2.Selection属性 19 九、 客户端行定位 20 1.将焦点转移到编辑行的指定列 20 2.获取焦点行号 20 3.将某行置为可见(未验证) 20 4.跳转到指定页 20 十、 服务器端行定位 21 1.焦点行 21 2.将某行置为可见 21 3.跳转到指定页 21 十一、 客户端数据搜索 21 1.数据过滤 21 十二、 服务端数据搜索 22 1.数据过滤 22 2.数据搜索 22 十三、 分页 23 1.分页条相关属性 23 2.更改分页条按钮属性 26 3.与分页相关操作 26 十四、 客户端排序 26 1.使用SortBy方法排序 26 十五、 服务器端排序 27 1.排序设置 27 2.使用SortBy方法排序 27 3.直接操作GridViewDataColumn排序 28 4.使用GetSortedColumns方法取排序栏位 28 十六、 服务器端数据分组 28 1.数据分组的前提条件 28 2.使用GroupBy方法实现数据分组 28 3.分组的展开与折叠 29 4.判断分组行是否展开 29 5.数据分组的相关设置 29 6.按分组值排序 30 十七、 客户端数据分组 30 1.使用GroupBy方法实现数据分组 30 2.分组的展开与折叠 30 3.判断分组行是否展开 31 4.判断是分组行还是数据行 31 5.用户拖动栏位到分组带实现分组 31 十八、 数据导出 31 1.内置数据导出的前提条件 31 2.支持的数据导出类型 32 3. ASPxGridViewExporter重要属性 32 4.主从ASPxGridView数据导出 32 5.导出到Pdf时中文乱码问题的解决 33 十九、 报表打印 33 二十、 懒加载 33 二十一、 客户端栏位取值与赋值 33 1.使用GetPageRowValues取当前页指定栏位值 33 2.使用GetRowValues取指定行指定栏位值 34 3.使用GetSelectedFieldValues取选中行指定栏位值 34 4.取栏位实例 34 5.使用GetColumnsCount取栏位总数 34 6.使用MoveColumn隐藏和移动栏位 34 7. 使用GetRowKey取行主键值 35 二十二、 服务器端栏位取值与赋值 35 1.取行值 35 2.取列值 36 二十三、 栏位编辑风格 38 1.AspxGridView栏位类型 38 2.GridViewColumn服务器端重要属性 38 3.GridViewColumn服务器端方法 40 4.GridViewCommandColumn:命令按钮列 41 5. GridViewDataColumn:基本数据列 42 6.GridViewDataButtonEditColumn:编辑按钮列 45 7.GridViewDataCheckColumn: 复选框列 45 8.GridViewDataTextColumn:文本列 45 二十四、 栏位格式化 45 二十五、 固定列 45 二十六、 栏位拖动 45 二十七、 栏位合计 46 二十八、 栏位初始值 46 二十九、 栏位可编辑性 46 三十、 栏位数据校验 46 1.行数据校验(编辑状态) 46 三十一、 客户端事件 49 三十二、 服务器端事件 49 1.服务器事件索引 49 2.AutoFilterCellEditorCreate 49 3.AutoFilterCellEditorInitialize 50 4.BeforeGetCallbackResult 50 5.BeforePerformDataSelect 51 6.CancelRowEditing 51 7. CellEditorInitialize 51 7. ClientLayout 52 8. CustomButtonCallback 52 9. CustomCallback 53 10. CustomColumnDisplayText 54 11. CustomColumnGroup 54 12. CustomColumnSort 55 13. CustomDataCallback 56 14. CustomErrorText 57 15. CustomGroupDisplayText 57 16. CustomJSProperties 58 17. CustomSummaryCalculate 58 三十三、 快捷键 59 三十四、 样式 59 1.GridViewStyles重要属性 59 2. GridViewAlternatingRowStyle重要属性 59 三十五、 AspxGridView服务器端重要属性 60 三十六、 AspxGridView服务器端重要方法 60 三十七、 GridViewColumnCollection服务器端重要属性 61 三十八、 AspxGridView客户端重要属性 61 三十九、 AspxGridView客户端常用方法 64 1.PerformCallback 77 四十、 AspxGridView客户端非常用方法 78 四十一、 ASPxClientGridViewColumn(客户端栏位)常用属性 79 四十二、 嵌套AspxGridView的特殊控制 80 1.控制在同一时间只允许一行展开 80 2.SettingsDetail属性设置 80 3.嵌套AspxGridView树展开与折叠(客户端) 80 四十三、 AspxGridView客户端源代码可借鉴点 81 四十四、 AspxGridView服务器端源代码可借鉴点 81 四十五、 BUG 81 四十六、 附录 81 1.格式化标识符 81 2.字符串转为枚举型 83

110,537

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧