asp.net Gridview TextBox 回车

我在gridview里加了个模板列,列里有一个textbox和button,我想在用户textbox里写完数据后按回车就激发点击button的事件,请问应该怎样做?<as... 我在gridview里加了个模板列,列里有一个textbox和button,我想在用户textbox里写完数据后按回车就激发点击button的事件,请问应该怎样做?

<asp:GridView ID="GridView1" runat="server" AllowPaging="True" AllowSorting="True"
AutoGenerateColumns="False" CellPadding="4" DataKeyNames="GoodsID" DataSourceID="GvAcc"
ForeColor="#333333" GridLines="None">
<FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
<Columns>
........
<asp:TemplateField HeaderText="数量">
<ItemTemplate>
<asp:TextBox ID="tbGv" runat="server" Width="43px" Text='<%# Bind("2008") %>'></asp:TextBox>
<asp:Button ID="btGv" runat="server" Text="确定" CommandArgument='<%# Eval("GoodsID") %>' OnCommand="btGv_Command"/>
</ItemTemplate>
</asp:TemplateField>
.........
</Columns>
<RowStyle BackColor="#EFF3FB" />
<EditRowStyle BackColor="#2461BF" />
<SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" />
<PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" />
<HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
<AlternatingRowStyle BackColor="White" />
</asp:GridView>
能再详细点吗?

三位的方法我也试过了,都不行喔~应该说是不适合.
可以的话发一个例子到我邮箱好吗?ltrain4@163.com

4楼的想法我开始就想过了也试过,是不行的.
展开
 我来答
harlandong
2008-11-11 · 超过17用户采纳过TA的回答
知道答主
回答量:59
采纳率:0%
帮助的人:0
展开全部
楼主的问题
完全不需要懂Javascript噢

我把我的代码Copy上来。

首先建立控件GridView1,注意噢
页面EnableEventValidation="false"必须的。

<form id="form1" runat="server">
<div>
<asp:GridView ID="GridView1" AutoGenerateColumns="false" runat="server">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:Panel ID="Panel1" DefaultButton="Button1" runat="server">
<asp:TextBox ID="TextBox1" Text='<%#Eval("StrValue")%>' runat="server" />
<asp:Button ID="Button1" UseSubmitBehavior="false" runat="server" Text="Button" OnClick="Button1_Click" />
</asp:Panel>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<br />
<br />
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
</div>
</form>

我为了使我的GridView有数据测试,所以新增了test类,楼主完全用数据库来提供数据。
public class test
{
private string strValue;

public string StrValue
{
get
{
return strValue;
}
set
{
if (strValue == value)
return;
strValue = value;
}
}
}

接着是页面code部分了

protected void Page_Load(object sender, EventArgs e)
{

List<test> a = new List<test>();

for (int i = 0; i < 10; i++)
{
test t = new test();
t.StrValue = i.ToString();
a.Add(t);
}

GridView1.DataSource = a;
GridView1.DataBind();

}

protected void Button1_Click(object sender, EventArgs e)
{

Button btn = (Button)sender;
Panel pan = (Panel)btn.Parent;
TextBox tb = (TextBox)pan.FindControl("TextBox1");
Label1.Text = tb.Text;
}

赶快运行下吧,把鼠标点进第一行的文本框,不要犹豫,按回车八,按好了么,快看看下边的Label显示什么吧,没错吧,而且每行都有这样的效果噢!!

好了我总结一下技术要点吧:

1.在Template列中用Panel把TextBox和Button包裹进去,然后在Panel上设置DefaultButton的属性指向Button,这个是关键。
2.后台Button_Click事件的sender参数可以帮助你获取你想要的控件或资料。

thats all

参考资料: 自己

bamboo06
2008-11-04 · TA获得超过153个赞
知道小有建树答主
回答量:321
采纳率:0%
帮助的人:331万
展开全部
具体方法如下:
1 head中如下java代码:
<HEAD>
<script language="javascript">
function EnterTextBox()
{
if(event.keyCode == 13 && document.all["TextBox1"].value != "")
{
event.keyCode = 9;
event.returnValue = false;
document.all["Button1"].click();
}
}
</script>
</HEAD>

2 在对应的cs文件中
protected void Page_Load(object sender, EventArgs e)
{
//绑定TextBox回车事件
TextBox1.Attributes.Add("onkeypress","EnterTextBox()");
}

其中TextBox1和Button1分别为TextBox和按钮的ID
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
网络剑客Eks
2008-10-31 · TA获得超过425个赞
知道小有建树答主
回答量:224
采纳率:0%
帮助的人:245万
展开全部
输入框输入数据后,按回车后激活按钮事件

客户端脚本

function SubmitKeyClick(button)

{

if (event.keyCode == 13)

{

event.keyCode=9;

event.returnValue = false;

document.all[button].click();

}

}

服务器端代码

tbx_CHM_Name.Focus();//输入框获得焦点

tbx_CHM_Name.Attributes.Add("onkeydown", "SubmitKeyClick('" + btn_Search2.ClientID + "');");
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
蚊子咬成重伤
2008-11-11 · 超过12用户采纳过TA的回答
知道答主
回答量:54
采纳率:0%
帮助的人:36.7万
展开全部
<script>
function clickButtonFun(obj)
{
if(event.keyCode == 13)
{
document.getElementById(obj.id.replace("tbGv","btGv")).click();
}
}
</script>
<asp:TextBox ID="tbGv" onkeypress="clickButtonFun(this)" runat="server" Width="43px" Text='<%# Bind("2008") %>'></asp:TextBox>
试一下.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
a5202003
2008-11-11 · TA获得超过2249个赞
知道大有可为答主
回答量:1885
采纳率:75%
帮助的人:591万
展开全部
下面揭晓正确答案:
默认的回车是提交表单,所以那些试图将回车触发事件更改或者添加的都是错误的,不管你添加什么,系统都会自动回发表单。

那么说一下解决方法:
首先,所有的控件自动回发的属性设置为false
在Page_Load中加入,
if(!IsPostBack)
{
这里写你原来Page_Load的代码
}
else
{
这里获取页面传回的参数,就是行号
在这里就可以做你要做的事情了
如果必要的话可以加一些标识符
}

下面是前台
如果你不想表单提交,就只能摒弃texbox,而用<input type="text" onpresskey="btn_click(行号)">
下面javascript
<script type="javascript">
function btn_click(行号)
{
这里可以对行号做一些处理
或者设置一个变量
如<asp:HiddenField ID="nid" runat="server" />
nid=行号;
form1.submit();
}
</script>
后台就可以获得nid传回的行号了
好了,到此应该明白了吧?那么给分吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
车晟
2008-11-10 · 超过35用户采纳过TA的回答
知道答主
回答量:115
采纳率:0%
帮助的人:115万
展开全部
设textbox的autopost=true
然后textbox的change事件里调用相应方法
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式