2011-08-22 85 views
0

我試圖允許使用向上和向下箭頭鍵更改gridview的行。我試圖使用jquery來捕捉keyup事件並使用隱藏的輸入字段來更改所選索引以存儲該值,但我不確定這是否正確。任何人都可以提供一些有關實現此功能的最佳方法的見解?用keydown更改asp:gridview的選定索引

在此先感謝

回答

1

這不是完整的解決方案,但它應該讓你在正確的方向前進。

在RowDataBound事件中,添加一個onkeypress事件或onkeyup事件到行,像這樣:

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) 
{ 
    //pass in an argument that will help to determine index of new selection 
    //for this example, I just chose the row index 
    e.Row.Attributes["onkeypress"] = String.Format("validateKeyPress({0});", e.Row.RowIndex); 
} 

創建JavaScript函數來驗證按鍵,做回發

validateKeyPress = function(rowIndex){ 
    //keycode 37 isn't the up or down key, but you get the idea 
    //also make sure that the logic here is browser compatible 
    if (window.event.keyCode == 37){ 
     __doPostBack("<%=GridView1.UniqueID%>", rowIndex); 
    } 
} 

在代碼後面,爲RiasePostBackEvent方法添加覆蓋:

protected override void RaisePostBackEvent(IPostBackEventHandler source, string eventArgument) 
{ 
    if (source == GridView1) 
    { 
     //add proper validation to avoid out of bounds exception 
     //this code increments, but you need to add something to increment or decrement 
     GridView1.SelectedIndex = Int32.Parse(eventArgument) + 1; 
    } 
} 
+0

我正在Sage SalesLogix平臺上工作d我的頁面是一個繼承自EntityBoundSmartPartInfoProvider的用戶控件,因此它不實現RaisePostBackEvent。我已經嘗試過更新面板和通過javascript和/或代碼隱藏進行激活,但是我無法在不刷新整個頁面的情況下使其工作。 Ë –

相關問題