我需要在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的从当前行中ASP.NET
- 2. ASP.Net Gridview分页,pageindex始终== 0
- 3. 获取GridView中选定行的索引
- 4. 从ASP.NET GridView获取DataRow
- 5. 想要在gridview上捕获PageIndex
- 6. 如何从GridView(C#)获取选定值
- 7. 从C#中的Gridview中选定的行获取数据,WPF
- 8. 在ASP.Net GridView中获取选定的复选框
- 9. 带有复选框的GridView:如何在ASP.Net中获取选定的行
- 10. 从选定的行gridview获取单元格值
- 11. ASP.NET Gridview - 复选框 - 选择多行并获取记录
- 12. Asp.Net GridView获取TemplateField上的当前行
- 13. 从ASP.NET的GridView中获取JSON数据?
- 14. asp.net中选定行的渐变gridview
- 15. asp.net gridview - 选择行
- 16. 从gridview获取多行DataKeys
- 17. 获取行从超链接的GridView
- 18. 从asp.net模板列中的复选框获取数据gridview
- 19. 从Gridview |获取动态创建的复选框值Asp.net
- 20. 从ASP.NET GridView获取值单元格
- 21. 更新面板中的gridview pageindex
- 22. 如何从gridview中的特定单元格获取值asp.net c#?
- 23. ASP.Net MVC - 获取选定<tr>行从表中通的jQuery
- 24. 在另一个GridView的选定行内显示ASP.NET GridView
- 25. 获取嵌套在Repeater中的GridView的选定行
- 26. 获取asp.net中选定值
- 27. 从特定的Gridview单元获取值
- 28. 从我的GridView行获取对象
- 29. 在gridview(Asp.net)中获取所选复选框的ID c#
- 30. 从DataGridView获取选定的行
我想关于这个解决方案也是如此,但它并不是那么优雅和优雅。为了达到这个目的,遍历行的开销很大。 – Fiur 2009-10-08 15:46:46
@菲尔:我不确定“开销”是什么。你已经重新绑定你的数据源,所以这意味着你有*它。如果你有它,为什么不通过它找到正确的行?通过你自己的招生,该行可以出现在任何地方,没有找到它就没有办法找到它。作为一个说明,他的解决方案只添加了循环代码,你已经在做,加上所需的页面变量/设置。这是+8行和1个循环。不完全是“很多开销” – JustLoren 2009-10-13 13:06:46