2012-06-18 40 views
2

我試圖讓這個樣本的工作 Get Selected Row (on server)jqGrid的asp.net web表單服務器端SelectedRow財產空

但對我來說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這是故意的。但我認爲這可能會導致我的悲傷。

+0

我注意到,這只是當我使用mastrpage,沒有它我的服務器端選擇的角色是完美 – Crudler

+0

請提供html murkup。 –

回答

0

與JQGrid的人一起工作,我們已經解決了這個問題。正是在他們的電網中的bug已被固定在v4.5.0.0

see here for details

我可以證實,這個修復的bug,和所有是正確的與世界再次

0

你總是必須設置數據源,因爲它沒有保存在ViewState或其他地方。所以代碼必須如下:

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

if (!Page.IsPostBack) 
{ 
    GRDUsers.DataBind(); 
} 
+0

如果你沒有調用數據綁定,那麼你不需要設置數據源。 –

+0

@MajoB你可以調用DataBind,但是你必須在完成你對數據的操作之後調用它,我的意思是,在PageLoad +回發你避免做DataBind,你這麼做,onClick事件(在PageLoad之後)之後你做出你的行爲。 – Aristos

+0

不,不是。事實證明,當我在一個內容頁面工作時會發生問題。如果你拿他們的示例應用程序,並圍繞主頁面構建,問題就會發生。 – Crudler