0
我試圖允許使用向上和向下箭頭鍵更改gridview的行。我試圖使用jquery來捕捉keyup事件並使用隱藏的輸入字段來更改所選索引以存儲該值,但我不確定這是否正確。任何人都可以提供一些有關實現此功能的最佳方法的見解?用keydown更改asp:gridview的選定索引
在此先感謝
我試圖允許使用向上和向下箭頭鍵更改gridview的行。我試圖使用jquery來捕捉keyup事件並使用隱藏的輸入字段來更改所選索引以存儲該值,但我不確定這是否正確。任何人都可以提供一些有關實現此功能的最佳方法的見解?用keydown更改asp:gridview的選定索引
在此先感謝
這不是完整的解決方案,但它應該讓你在正確的方向前進。
在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;
}
}
我正在Sage SalesLogix平臺上工作d我的頁面是一個繼承自EntityBoundSmartPartInfoProvider的用戶控件,因此它不實現RaisePostBackEvent。我已經嘗試過更新面板和通過javascript和/或代碼隱藏進行激活,但是我無法在不刷新整個頁面的情況下使其工作。 Ë –