2

このサンプルを機能させようとして いますGetSelectedRow(サーバー上)

しかし、私にとっては、SelectedRowプロパティは常に空です。

唯一の違いは、Page_loadイベントを使用してグリッドにデータを入力していることです。フォームのボタンを押すと、ポストバックが実行され、行の選択を失ってグリッドに再入力されます。

サンプルコード:

if (!Page.IsPostBack )
    {
        UserBusinessObject userBO = new UserBusinessObject();
        GRDUsers.DataSource = userBO.GetUsersbyProfileID(SessionFacade.Id);
        GRDUsers.DataBind();
    }


 protected void btnEdit_Click(object sender, EventArgs e)
{
     if (String.IsNullOrEmpty(GRDUsers.SelectedRow))
     {
         lblError.Visible = true;
     }
     else
     {
         Response.Redirect(string.Format("~/Manage/EditUserRoles.aspx?username={0}",GRDUsers.SelectedRow));

     }

}

また、ボタンをクリックすると、ページの読み込みが2回発生することにも気づきました(1回目はポストバックがtrue、2回目はfalse)jqgridの投稿によると、これは意図的なものです。しかし、これが私の悲しみを引き起こしているのではないかと思います。

4

2 に答える 2

0

ViewStateやその他の場所に保存されないため、常にDataSourceを設定する必要があります。したがって、コードは次のようにする必要があります。

UserBusinessObject userBO = new UserBusinessObject();
GRDUsers.DataSource = userBO.GetUsersbyProfileID(SessionFacade.Id);

if (!Page.IsPostBack )
{
    GRDUsers.DataBind();
}
于 2012-06-24T21:55:50.277 に答える
0

JQGridのスタッフと協力して、問題を解決しました。これは、v4.5.0.0で修正されたグリッドのバグです。

詳細はこちらをご覧ください

私はこれがバグを修正することを確認することができます、そしてすべては再び世界で正しいです

于 2012-07-23T15:10:13.037 に答える