关于gridview焦点问题(c#) 用脚本来完成可以通过给TextBox的Id赋值来完成 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 // DEMO<%@ Page Language="C#" %><%@ Import Namespace="System.Data" %><%@ Import Namespace="System.Text" %><%--http://topic.csdn.net/u/20080706/11/e66b378d-9307-4663-9c2c-e0855f42965e.html--%><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><script runat="server"> void ShowStudentData() { DataTable dt = CreateSampleData(); GridView1.DataSource = dt; GridView1.DataBind(); } #region sample data static DataTable CreateSampleEmptyDataTable() { DataTable tbl = new DataTable("Student"); tbl.Columns.Add("StudentNO", typeof(string)); tbl.Columns.Add("FirstName", typeof(string)); tbl.Columns.Add("LastName", typeof(string)); tbl.Columns.Add("Age", typeof(int)); tbl.Columns.Add("Gender", typeof(string)); return tbl; } static DataTable CreateSampleData() { DataTable tbl = CreateSampleEmptyDataTable(); tbl.Rows.Add("20021342", "Jack", "Wu", 25, "M"); tbl.Rows.Add("20025341", "Jue", "You", 23, "F"); tbl.Rows.Add("20022254", "Viky", "Huang", 24, "F"); tbl.Rows.Add("20022231", "Leo", "Wong", 24, "M"); return tbl; } #endregion protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { ShowStudentData(); } } </script><html xmlns="http://www.w3.org/1999/xhtml"><head runat="server"> <title>GridView</title> <script type="text/javascript"> function keyEnter(sender, arg){ if(window.event.keyCode == 13) { //debugger; var row = sender.parentNode.parentNode; if(arg.length >1 && arg[1]) { row = row.nextSibling; } if(row == null) return; var ipts = row.getElementsByTagName("input"); var txt2; for(var i = 0; i<ipts.length; i++){ if(ipts[i].type=="text" && ipts[i].id.indexOf(arg[0]) > 0) { txt2 = ipts[i]; } } if(txt2 != null) txt2.focus(); } } </script></head><body> <form id="form1" runat="server"> <div> <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false" > <columns> <asp:TemplateField> <ItemTemplate> <asp:TextBox id="TextBox_1" onkeypress="keyEnter(this, ['TextBox_2'])" runat="server" Text='<%# Eval("FirstName") %>' /> </ItemTemplate> </asp:TemplateField> <asp:TemplateField> <ItemTemplate> <asp:TextBox id="TextBox_2" onkeypress="keyEnter(this, ['TextBox_3'])" runat="server" Text='<%# Eval("LastName") %>' /> </ItemTemplate> </asp:TemplateField> <asp:TemplateField> <ItemTemplate> <asp:TextBox id="TextBox_3" onkeypress="keyEnter(this, ['TextBox_1', true])" runat="server" Text='<%# Eval("Age") %>' /> </ItemTemplate> </asp:TemplateField> </columns> </asp:GridView> </div> </form></body></html> 感谢晓风残月,我还有一个问题没有说清楚, 在gridview中的txtTitle_TextChanged有一事件,每次填写完一个textbox后,都会触发该事件,然后光标会回到页面第一个textbox,如果用上面的方法,就不能实现了. CKEditor做的博客发帖页面 vs2005 无法新建网站 关于window.open传值的问题 asp.net编程中使用C#遇到的问题,请精通编程的高人进来帮帮忙 用户控件的问题,帮忙解决一下,谢谢! 散掉最后可用分,只求解脱... 为什么我查询其他数据就可以,而出巡特定条件的就不行??? 散分。一个棘手的问题。敬请高手指教 datagrid问题 关于.Net架构的问题 mapguide,跪求帮助 Ajax下 (UpdatePanel下 使用ModalPopupExtender 控件 butoon按钮失效 求高手解决:)在线等待:
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Text" %><%--http://topic.csdn.net/u/20080706/11/e66b378d-9307-4663-9c2c-e0855f42965e.html--%><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><script runat="server">
void ShowStudentData()
{
DataTable dt = CreateSampleData(); GridView1.DataSource = dt;
GridView1.DataBind();
} #region sample data static DataTable CreateSampleEmptyDataTable()
{
DataTable tbl = new DataTable("Student"); tbl.Columns.Add("StudentNO", typeof(string));
tbl.Columns.Add("FirstName", typeof(string));
tbl.Columns.Add("LastName", typeof(string));
tbl.Columns.Add("Age", typeof(int));
tbl.Columns.Add("Gender", typeof(string)); return tbl;
} static DataTable CreateSampleData()
{
DataTable tbl = CreateSampleEmptyDataTable(); tbl.Rows.Add("20021342", "Jack", "Wu", 25, "M");
tbl.Rows.Add("20025341", "Jue", "You", 23, "F");
tbl.Rows.Add("20022254", "Viky", "Huang", 24, "F");
tbl.Rows.Add("20022231", "Leo", "Wong", 24, "M"); return tbl;
} #endregion protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
ShowStudentData();
}
}
</script><html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>GridView</title>
<script type="text/javascript">
function keyEnter(sender, arg){
if(window.event.keyCode == 13) {
//debugger;
var row = sender.parentNode.parentNode;
if(arg.length >1 && arg[1]) {
row = row.nextSibling;
}
if(row == null) return;
var ipts = row.getElementsByTagName("input");
var txt2;
for(var i = 0; i<ipts.length; i++){
if(ipts[i].type=="text" && ipts[i].id.indexOf(arg[0]) > 0) {
txt2 = ipts[i];
}
}
if(txt2 != null) txt2.focus();
}
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false" >
<columns>
<asp:TemplateField>
<ItemTemplate>
<asp:TextBox id="TextBox_1" onkeypress="keyEnter(this, ['TextBox_2'])" runat="server" Text='<%# Eval("FirstName") %>' />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<asp:TextBox id="TextBox_2" onkeypress="keyEnter(this, ['TextBox_3'])" runat="server" Text='<%# Eval("LastName") %>' />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<asp:TextBox id="TextBox_3" onkeypress="keyEnter(this, ['TextBox_1', true])" runat="server" Text='<%# Eval("Age") %>' />
</ItemTemplate>
</asp:TemplateField>
</columns>
</asp:GridView>
</div>
</form>
</body>
</html>
在gridview中的txtTitle_TextChanged有一事件,每次填写完一个textbox后,都会触发该事件,然后光标会回到页面第一个textbox,如果用上面的方法,就不能实现了.