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楼的想法我开始就想过了也试过,是不行的. 展开
<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楼的想法我开始就想过了也试过,是不行的. 展开
展开全部
楼主的问题
完全不需要懂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
完全不需要懂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
参考资料: 自己
展开全部
具体方法如下:
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
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
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
输入框输入数据后,按回车后激活按钮事件
客户端脚本
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 + "');");
客户端脚本
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 + "');");
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
<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>
试一下.
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>
试一下.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
下面揭晓正确答案:
默认的回车是提交表单,所以那些试图将回车触发事件更改或者添加的都是错误的,不管你添加什么,系统都会自动回发表单。
那么说一下解决方法:
首先,所有的控件自动回发的属性设置为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传回的行号了
好了,到此应该明白了吧?那么给分吧
默认的回车是提交表单,所以那些试图将回车触发事件更改或者添加的都是错误的,不管你添加什么,系统都会自动回发表单。
那么说一下解决方法:
首先,所有的控件自动回发的属性设置为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传回的行号了
好了,到此应该明白了吧?那么给分吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
设textbox的autopost=true
然后textbox的change事件里调用相应方法
然后textbox的change事件里调用相应方法
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询