gpt4 book ai didi

asp.net - GridView 分页,无法获取正确的 Datakey 值

转载 作者:行者123 更新时间:2023-12-04 06:48:51 26 4
gpt4 key购买 nike

网格 View

<asp:GridView ID="GridView1" runat="server" AllowPaging="True" 
AllowSorting="True" PagerSettings-Position="TopAndBottom"
PagerSettings-Mode="Numeric" PageSize="40" CellPadding="4" DataSourceID="dsEquipmentGridView"
ForeColor="#333333" GridLines="Horizontal" Style="font-size: x-small" AutoGenerateColumns="False"
DataKeyNames="IREF" OnRowEditing="GridView1_RowEditing" OnRowUpdated="GridView1_RowUpdated"
OnSorted="GridView1_Sorted" OnSorting="GridView1_Sorting" OnPageIndexChanged="GridView1_PageIndexChanged1"
OnPageIndexChanging="GridView1_PageIndexChanging" OnSelectedIndexChanged="GridView1_SelectedIndexChanged"
OnSelectedIndexChanging="GridView1_SelectedIndexChanging" OnRowCommand="GridView1_RowCommand"
BorderColor="Black" BorderStyle="Solid" BorderWidth="1px"
OnRowCancelingEdit="GridView1_RowCancelingEdit" onload="GridView1_Load"
ondatabound="GridView1_DataBound">
<PagerSettings Position="TopAndBottom" />
<RowStyle BackColor="#F7F6F3" ForeColor="#333333" />
<Columns>
<asp:CommandField ShowDeleteButton="False" ShowSelectButton="true" EditText="QuickEdit"
HeaderText="Manage" SelectText="Manage" />

对于加载的第一页,如果我单击命令字段,它会显示正确的 DataKey 值。

但是,如果我更改到下一页结果,则在选择记录时对应的值不正确。它似乎保留了上一页的信息。我如何克服这个问题?

编辑:

在 GridView1_SelectedIndexChanged 方法中,我使用了以下内容:
    // Determine the index of the selected row.
int index = GridView1.SelectedIndex;

// Display the primary key value of the selected row.
HttpContext.Current.Response.Write("The primary key value of the selected row is " + GridView1.DataKeys[index].Value.ToString() + ".<br>");

GridViewRow row = GridView1.Rows[index];

int rowindex = row.RowIndex;
HttpContext.Current.Response.Write("rowindex-> " + rowindex.ToString() + "<br>");

int ID = (int)GridView1.DataKeys[row.DataItemIndex - (GridView1.PageIndex * GridView1.PageSize)].Value;

HttpContext.Current.Response.Write("row.DataItemIndex" + ID.ToString()+"<br>");

int Userid = Convert.ToInt32(GridView1.DataKeys[index].Value);

HttpContext.Current.Response.Write("Userid" + Userid.ToString() + "<br>");

分页后我无法获得正确的值。

最佳答案

使用分页时,我们可以得到准确的行索引(gridview中从0到totalrows计数)
并在获取 datakey 时,我们需要传递当前页面的行索引。

使用下面的行获取当前页面索引并获取数据键:

// Get the correct row index since there is paging
int idx = gridViewRow.DataItemIndex - TestGridView.PageIndex * TestGridView.PageSize;

关于asp.net - GridView 分页,无法获取正确的 Datakey 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3413277/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com