0
我有一個加載數據網格的頁面。第一列有鏈接按鈕和一個編輯命令,該命令調用一個模式彈出窗口,焦點位於第一個字段上,該字段既可以是文本框,也可以是下拉列表。設置焦點並保持滾動位置ASP.NET AJAXControlToolkit
現在我的問題是,當我向下滾動數據網格並選擇編輯時,頁面向上滾動,在彈出模式之前按下我選擇編輯的數據網格中的行。保持滾動位置的唯一方法是從我的模式彈出窗口中刪除焦點。
有什麼辦法可以設置焦點並保持滾動位置?
我使用ASP.NET版本4.5.51650,AJAXControlToolkit版本15.1.2,VB.NET
<asp:UpdatePanel ID="UpdatePanel1" UpdateMode="Conditional" runat="server">
<ContentTemplate>
<asp:DataGrid ID="DataGrid" runat="server">
<Columns>
<asp:TemplateColumn HeaderText="Name">
<ItemTemplate>
<asp:LinkButton ID="lb_Name" CommandName="Edit" runat=server />
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
</asp:DataGrid>
</ContentTemplate>
</asp:UpdatePanel>
<asp:UpdatePanel ID="UpdatePanel2" UpdateMode="Conditional" runat="server">
<ContentTemplate>
<asp:Button ID="Button1" style="display:none" runat="server" />
<ajaxToolkit:ModalPopupExtender ID="ModalPopupExtender" TargetControlID="Button1" PopupControlID="ModalPopupExtender_Panel" runat="server" />
<asp:Panel ID="ModalPopupExtender_Panel" style="display:none" DefaultButton="ModalPopupExtender_Ok" runat="server">
<asp:Table runat="server">
<asp:TableRow>
<asp:TableCell>
<asp:Textbox ID="Textbox1" runat="server" />
</asp:TableCell>
</asp:TableRow>
</asp:Table>
<div>
<asp:Button ID="ModalPopupExtender_Ok" Text="Save" runat="server" />
<asp:Button ID="ModalPopupExtender_Cancel" Text="Cancel" runat="server" />
</div>
</asp:Panel>
</ContentTemplate>
</asp:UpdatePanel>
代碼背後:
Private Sub BindDataGrid()
'code goes here
UpdatePanel1.Update()
End Sub
Private Sub DataGrid_EditCommand(ByVal source As Object, ByVal e As DataGridCommandEventArgs) Handles DataGrid.EditCommand
'code goes here
UpdatePanel2.Update()
Textbox1.Focus()
ModalPopupExtender.Show()
我正在嘗試重構您的示例。誰調用'BindDataGrid()'方法? –
對於這個例子,BindDataGrid()在頁面加載時被調用,然後在信息從模式中被保存後再被調用。我試圖簡化/概括我的代碼,以便在其他人遇到類似問題時可能會更有幫助。 – giselleghadyani
好的,所以我需要把它放到Page_Load方法中,對吧? –