asp.net Gridview TextBox 回车
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了asp.net Gridview TextBox 回车相关的知识,希望对你有一定的参考价值。
我在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楼的想法我开始就想过了也试过,是不行的.
完全不需要懂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
参考资料:自己
参考技术A 具体方法如下: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 参考技术B 输入框输入数据后,按回车后激活按钮事件
客户端脚本
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 + "');"); 参考技术C <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>
试一下. 参考技术D 下面揭晓正确答案:
默认的回车是提交表单,所以那些试图将回车触发事件更改或者添加的都是错误的,不管你添加什么,系统都会自动回发表单。
那么说一下解决方法:
首先,所有的控件自动回发的属性设置为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传回的行号了
好了,到此应该明白了吧?那么给分吧 第5个回答 2008-11-10 设textbox的autopost=true
然后textbox的change事件里调用相应方法
如何使用 asp.net 将 gridview 图像和数据导出到 PDF 或使用 asp.net 将 gridview 数据导出到 PDF
【中文标题】如何使用 asp.net 将 gridview 图像和数据导出到 PDF 或使用 asp.net 将 gridview 数据导出到 PDF【英文标题】:how to export gridview image and data to PDF using asp.net or Export gridview data to PDF using asp.net 【发布时间】:2012-06-30 22:19:49 【问题描述】:protected void Button4_Click(object sender, EventArgs e)
Response.ContentType = "application/pdf";
Response.AddHeader("content-disposition","attachment;filename=GridViewExport.pdf");
Response.Cache.SetCacheability(HttpCacheability.NoCache);
StringWriter sw = new StringWriter();
HtmlTextWriter hw = new HtmlTextWriter(sw);
GridView1.AllowPaging = false;
GridView1.DataBind();
GridView1.RenderControl(hw);
StringReader sr = new StringReader(sw.ToString());
Document pdfDoc = new Document(PageSize.A4, 10f, 10f, 10f, 0f);
HTMLWorker htmlparser = new HTMLWorker(pdfDoc);
PdfWriter.GetInstance(pdfDoc, Response.OutputStream);
pdfDoc.Open();
htmlparser.Parse(sr);//this is the error line
pdfDoc.Close();
Response.Write(pdfDoc);
Response.End();
【问题讨论】:
【参考方案1】:您必须为此使用第 3 方控制 尝试免费使用 iText Sharp 库
更多信息go here
【讨论】:
我导出到文本中的 gridview 值..但不只导出到图像我如何导入 pdf 中的图像? Hey Jintha arun.. 你解决了这个问题吗??如果是,请您发布答案..以上是关于asp.net Gridview TextBox 回车的主要内容,如果未能解决你的问题,请参考以下文章
Asp.net WebForm 中 UpdatePanel 内的模板文本框字段
ASP.NET 中Double.Parse(String)转换问题
如何使用 asp.net 将 gridview 图像和数据导出到 PDF 或使用 asp.net 将 gridview 数据导出到 PDF