gridview与4个文本框在一行中的VB.Net
gridview with 4 textboxes in a row in VB.Net
我有一个gridview与4个文本框在一行。用户在第一行的第一个文本框中输入文本。其他文本框是只读的,其值根据第一个文本框的值自动填充。当我按"enter"或"tab"键时,文本框的焦点应该转到第二行的第一个文本框。我怎样才能做到这一点?标签索引似乎不工作。我用VB来做。净
您可以使用RoWDataBound
event:-
更新:
声明一个页面级别变量来保存TabIndex:-
Dim index As Short = 0
RowDataBoundEvent: -
Protected Sub grdCustomer_RowDataBound(sender As Object, e As GridViewRowEventArgs)
If e.Row.RowType = DataControlRowType.DataRow Then
index += 1
Dim txtID As TextBox = DirectCast(e.Row.FindControl("txtID"), TextBox)
txtID.TabIndex = index
//Other TextBox(s)
Dim txtName As TextBox = DirectCast(e.Row.FindControl("txtName"), TextBox)
Dim txtCity As TextBox = DirectCast(e.Row.FindControl("txtCity "), TextBox)
txtName.TabIndex = txtCity.TabIndex = -1 //Set TabIndex of Readonly textbox to -1
End If
End Sub
这里txtID
将是你的第一个文本框在每一行的文本框id,并设置其他文本框TabIndex为-1
,使他们永远不会被聚焦。
文本框更改事件:-
Protected Sub txtID_TextChanged(sender As Object, e As EventArgs)
Dim txtID As TextBox = CType(sender, TextBox)
//Logic to populate other textbox.
Dim focusIndex As Short = CShort(txtID.TabIndex + 1)
Dim tabbedRow = grdCustomer.Rows.OfType(Of GridViewRow) _
.FirstOrDefault(Function(x) (CType(x.FindControl("txtID"), TextBox)).TabIndex = focusIndex)
If tabbedRow IsNot Nothing Then
tabbedRow.FindControl("txtID").Focus()
End If
End Sub
逻辑:
由于我们按顺序设置了每一行第一个文本框的TabIndex
,在textChanged事件中,我找到TabIndex等于当前文本框TabIndex + 1的文本框,并将焦点设置在该文本框上。
相关文章:
- 借助asp.net验证或java脚本对多个文本进行验证
- java.net和javascript之间正则表达式的差异
- 将Javascript数组发送到控制器ASP.NET MVC
- ASP.NET通过单击JavaScript按钮触发c#事件
- 将数据从javascript文件导入VB.Net页面
- 文本框不是从Javascript/Asp.net中的对话框中打印出来的
- 拆分文本以每隔n个字符添加一行新行,并注意空格
- 从javascript调用asp.net codebehind函数
- 动态插入的表:JQuery未检测到最后一行
- 在终端中运行 JavaScript 时(使用 rhino),如何使用 print() 函数在一行中打印
- 如何在Angular UI网格中选择下一行
- jQuery Error adadvisor.net
- 使用javascript的Asp.net内容占位符
- 获取ASP.NET Ajax Timer状态
- 如何在 C# 中执行下一行之前显示警报弹出窗口 asp.net
- 如何使用javascript asp.net在网格视图的同一行选中复选框时验证网格视图中的文本框
- gridview与4个文本框在一行中的VB.Net
- 不计算每一行网格.net
- ASP.net Javascript为gridview的每一行设置倒计时时钟计时器
- 在ASP中对异步ajax事件执行一行javascript.NET