<asp:GridView ID="gv" runat="server" EmptyDataText="没有相关数据!" AutoGenerateColumns="False" Height="109px" Width="1189px" PageSize="100"> <HeaderStyle CssClass=" "/> <RowStyle CssClass=""/> <AlternatingRowStyle CssClass=""/> <Columns> <asp:BoundField DataField="" HeaderText=" /> <asp:BoundField DataField="" HeaderText="/> <asp:BoundField DataField="" HeaderText=""/> <asp:TemplateField HeaderText="" SortExpression=""> <ItemTemplate> <asp:Label runat="server" ID="lbl" ></asp:Label> </ItemTemplate> <EditItemTemplate> <asp:TextBox runat="server" Text="txtbatchqty"></asp:TextBox> </EditItemTemplate> </asp:TemplateField> <asp:BoundField DataField="" HeaderText=""/> <asp:BoundField HeaderText=""/> <asp:BoundField HeaderText=""/> <asp:BoundField HeaderText=""/> </Columns> </asp:GridView>
2.
<asp:TemplateField HeaderText="" SortExpression=""> <ItemTemplate> <asp:TextBox ID="" runat="server"></asp:TextBox> </ItemTemplate> </asp:TemplateField>
3.
GridView系列之基础篇(Rows,Cells,Controls) |
GridView控件在Asp.net开发中应用非常广泛,因其在表格操作使用方便直接,获取广大开发人员的青睐。本文主要谈谈GridView的基本概念,即GridView的DataKeyNames、DataKeys、Rows、Cells、Controls的概念与用法。
首先请看下图(图中一些敏感信息已覆盖):
先讲DataKeyNames,它是指GridView绑定数据的主键名,类似于数据库中的主键列名,用于绑定数据的主键于GridView上,比如上图中,你要编辑或删除GridView某行的数据,点击“编辑”或“删除”后,先获取到这行数据的主键值,再通过主键值找到此行相应的数据,怎么获取主键值?我待会再谈。我们继续聊DataKeyNames如何绑定主键值,最直接的方式就是:
1
|
< asp:gridview id = "gvTest" runat = "server" datakeynames = "KEYNAME" ></ asp:gridview > |
代码中的KEYNAME是指数据源中的主键列名,然后GridView会自动将数据源中的主键值绑定于GridView中。另外,还有自定义主键值的方式:
1
|
gridview.DataKeyNames= new string[] { "主键名" } |
PS:上面自定义主键值的代码一定要放在Page_Load中,否则Delete事件找不到主键,会出错。
*获取主键值的方式:DataKeys[行数],如:DataKeys[e.NewEditIndex](获取编辑行的主键值)、DataKeys[e.NewSelectedIndex](获取选中行的主键值)
如上图GridView中,如果要获取"系统管理员",获取的方法为:gridview.Rows[5].Cells[4].Text;而不是gridview.Rows[5][4],这跟DataTable获取值的方法还是不同的,切记!
其中rows[]代表行的数组,cells[]代表单元格的数组,Controls代表控件(在cells中的控件),于是用这三者就可准确定位出在gridview中的所有控件了。
PS:若要找出Cells中的控件,需要用FindControl(contorlID),再用控件类型强制转换。例如,需要找出GridView中第3行第3列控件ID为txtTest的TextBox控件,有:
1
|
TextBox txt = (TextBox)gridview.Row[3].Cells[3].FindControl( "txtTest" ); |
以上是笔者在开发过程使用GridView控件的一些心得,欢迎指正!
除非注明,文章均为彭智勇原创,转载请务必注明本文地址,谢谢。
本文地址:http://pengzhiyong.com/blog/6.html
4.
<form id="form1" runat="server" defaultbutton="btnAdd">
//直接在js中写 <script language="javascript"> function EnterTextBox() { if(event.keyCode == 13 && document.all["TextBox1"].value != "") { event.keyCode = 9; event.returnValue = false; document.all["TextBox1"].click(); } } </script> <body onkeypress="return EnterTextBox()"> //此处TextBox1为页面上TextBox的ID <script language="javascript"> function EnterTextBox(button) { if(event.keyCode == 13 && document.all["TextBox1"].value != "") { event.keyCode = 9; event.returnValue = false; document.all[button].click(); } } </script> 在PageLoad事件里 TextBox1.Attribute.add("onkeypress","EnterTextBox('Button1')");