我需要在GridView中突出显示编辑的行的功能,所以在GridView的RowDataBound上,我检查哪一个是编辑过的并更改了CSS样式。 有一个小问题,更改可能会使该行显示在不同的页面上。 如何从行中获取PageIndex以跳转到该页面?ASP.NET Gridview:从选定的行获取PageIndex
回答
untested code in vb.net
*assuming there are studentid from 1 to 100 in the database
*assuming pagesize of gridview is 10
dim studentid_of_edited_row as integer = 11
dim da as new dataadapter(strquery,conn)
dim dt as new datatable
da.fill(dt)
dim desired_pageindex as integer = 0
for i as integer = 0 to dt.rows.count - 1
if dt.rows(i)("studentid") = studentid_of_edited_row then
desired_pageindex = i/gridview1.pagesize
exit for
end if
next
gridview1.pageindex = desired_pageindex
gridview1.datasource = dt
gridview1.databind
看吧:http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.gridview.pageindex.aspx
酒店的PageIndex,您可以获取或设置当前显示的页面的索引。
当您编辑所选行时,您显然需要一些唯一标识符来将更改保存回数据存储区。将该标识符保存到本地变量。然后,当您查看OnRowDataBound事件中的每一行时,将其唯一标识符与当前保存的值进行比较。如果它是一样的,你已经找到了你的行。
这就是我正在做的事情,我可以找到行很容易,我的问题和我问的问题是如何从行中获取页索引? – Fiur 2009-10-14 07:00:25
我会添加一个包含RowNumber的额外列。如果使用的是MSSQL很容易,因为
SELECT col1, col2, ROW_NUMBER() OVER(ORDER BY col1 [DESC]) as RowNumber FROM table
,发现使用可以匹配所有列值(如果你有一个独特的列确保您可以使用DataTable.Rows.Select更改的行INT DataTable.Rows,如果你不是没有运气!你可以得到多于一行所以选择一个!如果唯一性不重要,没有任何意义),并获得RowNumber值,这也是通过使用添加到表中的列ROW_NUMBER()TSQL函数。其余的是数学;
int PageNumber = PageSize < RowNumber ? ((RowNumber - 1)/PageSize) + 1 : 1;
编辑:1 - 我想你对每个查询数据库往返页面 2- ROW_NUMBER()应该工作的Oracle和MySQL我beleive或具有同等经营者,我知道的...
- 1. 从gridview获取选定行的数据?
- 2. 获取Gridview的选定行
- 3. 如何从asp.net中的gridview中获取选定的行字段
- 4. ASP.Net Gridview分页,pageindex始终== 0
- 5. 获取GridView的从当前行中ASP.NET
- 6. 获取GridView中选定行的索引
- 7. 想要在gridview上捕获PageIndex
- 8. 从ASP.NET GridView获取DataRow
- 9. 如何从GridView(C#)获取选定值
- 10. 在ASP.Net GridView中获取选定的复选框
- 11. 从C#中的Gridview中选定的行获取数据,WPF
- 12. 带有复选框的GridView:如何在ASP.Net中获取选定的行
- 13. 从选定的行gridview获取单元格值
- 14. Asp.Net GridView获取TemplateField上的当前行
- 15. 从ASP.NET的GridView中获取JSON数据?
- 16. ASP.NET Gridview - 复选框 - 选择多行并获取记录
- 17. asp.net中选定行的渐变gridview
- 18. asp.net gridview - 选择行
- 19. 在gridview中从选定行中获取值
- 20. 获取行从超链接的GridView
- 21. 从gridview获取多行DataKeys
- 22. 从Gridview |获取动态创建的复选框值Asp.net
- 23. 从asp.net模板列中的复选框获取数据gridview
- 24. 更新面板中的gridview pageindex
- 25. 从ASP.NET GridView获取值单元格
- 26. 获取Gridview中Dropdownlist的选定值
- 27. ASP.NET:从选定的gridview项目获取数据 - linq-to-entities数据源
- 28. Gridview中的选定行+ 1?
- 29. 如何从gridview中的特定单元格获取值asp.net c#?
- 30. C#和ASP.net从gridview中获取数据集中的特定列
我想关于这个解决方案也是如此,但它并不是那么优雅和优雅。为了达到这个目的,遍历行的开销很大。 – Fiur 2009-10-08 15:46:46
@菲尔:我不确定“开销”是什么。你已经重新绑定你的数据源,所以这意味着你有*它。如果你有它,为什么不通过它找到正确的行?通过你自己的招生,该行可以出现在任何地方,没有找到它就没有办法找到它。作为一个说明,他的解决方案只添加了循环代码,你已经在做,加上所需的页面变量/设置。这是+8行和1个循环。不完全是“很多开销” – JustLoren 2009-10-13 13:06:46