c# - GridView - 将焦点设置到特定单元格

标签 c# asp.net gridview

我已经看到很多关于这个问题的帖子,但是,他们都建议我们使用以下方法:dgv.CurrentCelldgv.Rows[row].Cells[cellno ].已选择。 Intellisense 没有发现这样的方法。

我在 GridView 中有一个文本框,我在其中使用 OnTextChanged 方法。然后,在我的 C# 代码中,我更新了这个数量,然后网格自动刷新,并返回到顶行,即使我们已经向下滚动了几页。我还尝试在 .aspx 页面的“页面”部分中放入MaintainScrollPositionOnPostback="true",但这似乎没有做任何事情。我们使用 .Net Framework 4.0。

<asp:GridView ID="gvOrderDetails" runat="server" AlternatingRowStyle-BackColor="#FAFAFA" Width="940px" AutoGenerateColumns="False" AllowSorting="True" OnSorting="SortOrderDetails"
OnRowCommand="gvOrderDetails_RowCommand" EmptyDataText="No Data to Display"
DataKeyNames="STOREORDNUM" HeaderStyle-Height="22px" 
onselectedindexchanged="gvOrderDetails_SelectedIndexChanged">
<AlternatingRowStyle BackColor="White" /><EditRowStyle BackColor="#2461BF"/>
<FooterStyle BackColor="LightGray" Font-Bold="False" ForeColor="Black" />
<HeaderStyle BackColor="LightGray" Font-Bold="False" ForeColor="Black" BorderWidth="1px" BorderColor="Gray"/><PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" />
<RowStyle BackColor="#EFF3FB"  Height="22px"/>
<Columns>
     <asp:BoundField DataField="ITMCD" HeaderText="Item Code" SortExpression="ItemCode" >
     </asp:BoundField>
     ....                             
     <asp:TemplateField HeaderText="Order Qty" SortExpression="OrderQty" >
         <ItemTemplate>
            <asp:TextBox ID="OrderQty" runat="server" Width="36" MaxLength="5" class="numberinput" AutoPostBack="true" OnTextChanged="buttonUpdateQty_Click" Text='<%# Bind("ORDERQTY") %>' ></asp:TextBox>                                   
         </ItemTemplate>
     </asp:TemplateField>
  </Columns>                        
 </asp:GridView>

在后面的代码中,我尝试了以下两件事:

gvOrderDetails.Rows[row.RowIndex].FindControl("OrderQty").Focus();
gvOrderDetails.Rows[row.RowIndex].Cells[7].Controls[0].Focus();

最佳答案

您需要将所需的控制单元转换为 Textbox 控件,然后对其调用 Focus() 方法。

试试这个:

TextBox txtOrderQty = (TextBox) gvOrderDetails.Rows[row.RowIndex].FindControl("OrderQty");
txtOrderQty.Focus();

关于c# - GridView - 将焦点设置到特定单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21791339/

相关文章:

c# - 为什么 .NET 创建新的子字符串而不是指向现有字符串?

c# - 空引用异常(从 mysql 下载 BLOB 文件)

c# - 如何删除数据成员上的命名空间?

javascript - 访问 gridview 内的 ASP 文本框以获取 JS 脚本

c# - 在 ASP.MVC 中测试具有相同名称的 Controller 中的 GET/POST 方法

javascript - 选项卡控件在 ASP.net MVC 中未按预期工作

asp.net - VB.NET - 将 WinForm 应用程序导出/转换为 Web ASP.NET 应用程序的最简单方法

asp.net - SignInManager.PasswordSignInAsync 生成许多数据库访问

javascript - 使用Javascript的动态gridview的多列列总和

android - 水平居中 GridView 的子级