2

我正在尝试使此示例正常工作 Get Selected Row (on server)

但对我来说 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));

     }

}

我还注意到,在单击按钮时,我的页面加载会触发两次(第一次回发是真的,第二次是假的)根据 jqgrid 帖子,这是故意的。但我认为这可能会导致我的悲伤。

4

2 回答 2

0

您始终必须设置 DataSource,因为它没有保存在 ViewState 或其他任何地方。所以代码必须是:

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 回答