【发布时间】:2015-02-20 13:22:09
【问题描述】:
我想要做的是,在发生 GridView_OnRowEditing 事件时,我想专注于出现在我正在编辑的单元格中的文本框。从那里我将触发一个 javascript 键盘,但我需要先关注文本框,然后才能执行任何操作。
这是我当前的代码:
protected void GridView_OnRowEditing(object sender, GridViewEditEventArgs e)
{
var row = GridView.Rows[e.NewEditIndex];
var gridText = (TextBox) row.Cells[5].Controls[0];
gridText.Focus();
}
编辑:
这是我的 GridView 标记。我没有手动设置文本框。如果无论如何要检索在 RowEditing 事件中转换为文本框的单元格的 ID,请告诉我。谢谢。
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" AutoGenerateEditButton="True" DataKeyNames="RollNumber" DataSourceID="WoSource" HorizontalAlign="Center"
OnRowUpdating="GridView1_RowUpdating" AllowSorting="true" Visible="True" OnRowDataBound="GridView1_RowDataBound" OnRowEditing="GridView1_OnRowEditing" OnRowCancelingEdit="GridView1_OnRowCancelingEdit" Width="100%">
<Columns>
<asp:BoundField DataField="WorkOrderNo" HeaderText="WorkOrderNo" ReadOnly="True" SortExpression="WorkOrderNo" Visible="False"/>
<asp:BoundField DataField="RollNumber" HeaderText="RollNumber" ReadOnly="True" SortExpression="RollNumber" />
<asp:BoundField DataField="ModelNumber" HeaderText="ModelNumber" ReadOnly="True" SortExpression="ModelNumber" />
<asp:BoundField DataField="QtyGood" HeaderText="QtyGood" ReadOnly="True" SortExpression="QtyGood" />
<asp:BoundField DataField="QtyRun" HeaderText="QtyRun" SortExpression="QtyRun"><ControlStyle Width="100%" Height="100%" Font-Size="36px"></ControlStyle></asp:BoundField>
</Columns>
</asp:GridView>
【问题讨论】:
-
除非最近 ASP.Net 发生了重大变化,否则我很确定您无法在客户端上执行 C# 代码。 Aka 一旦你开始编辑 gridview,它要么重新加载(因为你已经连接了一个服务器事件),要么它什么也不做。但我可能是错的。
-
请阅读here。应该会给你一些线索。
-
这需要更多解释。现在我不清楚你想要什么以及你正在使用什么。这是一个网络应用程序吗?如果 Bjarke 是对的,那么您将无法在服务器端执行此操作。使用 javascript 事件来做到这一点。
-
在 javascript/jquery 中,当您单击编辑(onClick 事件)时,您可以获得单击编辑的表格行并选择该表格行中的第一个 texbox。请提供更多信息(更多代码,网格的 html 部分),如果不是我,肯定会有其他人能够提供帮助。
-
可以找到第一个。这是带有示例api.jquery.com/first 和更多示例blog.logentries.com/2012/09/… 以及更多stackoverflow.com/questions/2823471/… 的jquery 文档
标签: javascript c# jquery gridview