gpt4 book ai didi

c# - 使用 Page Previous Page 获取 GridView 选定的行值

转载 作者:太空宇宙 更新时间:2023-11-03 11:21:31 24 4
gpt4 key购买 nike

我在 ConsumerList 页面中有一个 gridView。单击编辑按钮(在每一行中)时,它会导航到 EditConsumer 页面。在 EditConsumer 页面中,我需要使用 Page.PreviousPage 获取所选行的值。如何获取这些值?

    public void Consumer_RowCommand(Object sender, GridViewCommandEventArgs e)
{

if (e.CommandName == "CustomEdit")
{
int rowIndex = Convert.ToInt32(e.CommandArgument);
string consumerID = grdConsumers.Rows[rowIndex].Cells[1].Text;
string consumerName = grdConsumers.Rows[rowIndex].Cells[2].Text;
string consumerUrl = grdConsumers.Rows[rowIndex].Cells[3].Text;
string consumerStatus = grdConsumers.Rows[rowIndex].Cells[4].Text;

Response.Redirect("EditConsumer.aspx?RowIndex=" + rowIndex);
}
}

标记

  <asp:GridView ID="grdConsumers" runat="server" AutoGenerateColumns="False" CssClass="resultGridTable"
GridLines="None" EnableViewState="True" AllowSorting="True" OnSorting="Consumers_Sorting" OnRowCommand="Consumer_RowCommand">
<AlternatingRowStyle BackColor="#E5E5E5" />
<Columns>

<asp:TemplateField HeaderText="Action">
<ItemTemplate>

<asp:Button ID="btnView" runat="server" CssClass="actionButtonView"
Text="VIEW" Style="width: 40px" BackColor="Orange"
Font-Bold="True" ForeColor="White" />

<asp:Button ID="btnEdit" runat="server" CommandName="CustomEdit" CommandArgument="<%# ((GridViewRow)Container).RowIndex %>"
CssClass="actionButtonEdit"
Text="EDIT" Style="width: 35px" BackColor="Orange"
Font-Bold="True" ForeColor="White" />

<asp:Button ID="btnDelete" runat="server" CssClass="actionButtonDelete"
Text="DELETE" Style="width: 55px" BackColor="Orange"
Font-Bold="True" ForeColor="White" />

<asp:Button ID="btnPing" runat="server" CssClass="actionButtonPing"
Text="PING" Style="width: 35px" BackColor="Orange"
Font-Bold="True" ForeColor="White" />

</ItemTemplate>
</asp:TemplateField>

<asp:BoundField HeaderText="Consumer ID" DataField="ConsumerID" SortExpression="ConsumerID"></asp:BoundField>
<asp:BoundField HeaderText="Consumer Name" DataField="ConsumerName" SortExpression="ConsumerName"></asp:BoundField>
<asp:BoundField HeaderText="Consumer URL" DataField="ConsumerURL" SortExpression="ConsumerURL"></asp:BoundField>
<asp:BoundField HeaderText="Status" DataField="Status" SortExpression="Status"></asp:BoundField>



</Columns>
</asp:GridView>

最佳答案

注意:PreviousPage 只有!= nullcross page posting , Response.Redirect不管用。例如,您可以使用 Server.Transfer .

您可以提供一个公共(public)属性 SelectedConsumer,它返回 GridView 中当前选定行的自定义对象。

public Consumer SelectedConsumer
{
get {
if (grdConsumers.SelectedRow == null)
return null;

var c = new Consumer();
c.consumerID = grdConsumers.SelectedRow.Cells[1].Text;
c.consumerName = grdConsumers.SelectedRow.Cells[2].Text;
c.consumerUrl = grdConsumers.SelectedRow.Cells[3].Text;
c.consumerStatus = grdConsumers.SelectedRow.Cells[4].Text;

return c;
}
}

现在您只需将 PreviousPage 属性转换为正确的页面类型:

var consumerList = (ConsumerList)Page.PreviousPage;
var selectedConsumer = consumerList.SelectedConsumer;

关于c# - 使用 Page Previous Page 获取 GridView 选定的行值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10831647/

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