0

Web アプリ (ASP.NET 2.0 C#) があり、ページの 1 つにGridview. にGridviewは 3 つの列 (編集、ID、名前) があり、並べ替えが有効になっています。編集は従来の方法では機能しません。ID を使用して に追加するQueryStringと、ユーザーは編集ページに移動します。このようなもの:

protected void Grid_RowEditing(object sender, GridViewEditEventArgs e)
{
   string editID = Grid.DataKeys[e.NewEditIndex].Value.ToString();  
   Response.Redirect("~/Admin/Edit_Page.aspx?EditID=" +
                     HttpUtility.HtmlDecode(editID));
}

ページが読み込まれると、グリッドはソートされません。編集をクリックすると、正常に動作します。しかし、並べ替え後に [編集] をクリックすると、現在ある行の ID ではなく、並べ替え前に元々あった行の ID が渡されます。

なぜこうなった?何か案は?

ありがとうございました。

4

3 に答える 3

1

データセットを再バインドしていますか?

于 2009-04-17T14:15:25.863 に答える
0

そのままの動作を維持したい場合は、別の解決策が考えられます。編集用のボタンを使用し、ボタンのユーザー CommandName を「edit」に、CommandArgument を編集中のエンティティの ID にすると、機能する場合があります。以下にコードを示します。

コードビハインド:

protected void Grid_RowCommand(object sender, GridViewCommandEventArgs e)
{
    if (e.CommandName == "Edit")
    {
        int intEditId = Convert.ToInt32(e.CommandArgument);
        Response.Redirect("~/Admin/Edit_Page.aspx?EditID=" + intEditId);

    }
 }

aspx ファイル:

グリッド内:

<asp:TemplateField>
   <ItemTemplate><asp:ImageButton CommandName="Edit"
   CommandArgument='<%# Eval("EditID") %>' runat="server" ID="lnkEdit" ImageUrl="../images/edit.gif" ToolTip="View/Edit"></asp:ImageButton></ItemTemplate></asp:TemplateField>

お役に立てれば。アニンダ

于 2009-04-17T15:19:10.703 に答える