自己实现DataKeyNames
来源:互联网 发布:2017年网络严打赌博 编辑:程序博客网 时间:2024/05/21 01:29
DataKeyNames就是数据库表的字段,可以设置多个。
<asp:GridView ID="gvGoods" runat="server" AutoGenerateColumns="False" Width="550px" AllowPaging="True" DataKeyNames="s_goodsID,s_goodsName" OnPageIndexChanging="gvGoods_PageIndexChanging" OnRowDataBound="gvGoods_RowDataBound" OnRowCommand="gvGoods_RowCommand">
使用 DataKeyNames 属性指定表示数据源主键的字段。
注意
若要以声明方式设置此属性,请使用以逗号分隔的字段名列表。
当设置了 DataKeyNames 属性时,GridView 控件用来自指定字段的值填充它的 DataKeys 集合,这提供了一种访问每个行的主键的便捷方法。
注意
GridView 控件以控件状态存储这些键字段值。如果这些值包含敏感信息,则强烈建议您通过将 ViewStateEncryptionMode 属性设置为 ViewStateEncryptionMode.Always 来启用视图状态加密。
在使用自动生成的字段列时(通过将 AutoGenerateColumns 属性设置为 true),GridView 控件自动确保与 DataKeyNames 属性中指定的字段相对应的自动生成字段列是只读的。
注意
为了使 GridView 控件的自动更新和删除功能工作,必须设置 DataKeyNames 属性。为了匹配要更新或删除的行,这些键字段的值被传递到数据源控件。
如果将某个列字段的 Visible 属性设置为 false,则在 GridView 控件中将不显示该列,该列中的数据也不会往返于客户端。如果希望某个不可见的列中的数据可以进行往返,则向 DataKeyNames 属性添加相应的字段名称。
一个删除的例子:
注意:DataKeyField=的用法
=====页面=====
<asp:DataGrid id="DataGrid1" runat="server" AutoGenerateColumns="False" DataKeyField="DoubleKey">
<Columns>
<asp:BoundColumn DataField="item" HeaderText="item"></asp:BoundColumn>
<asp:ButtonColumn CommandName="del" Text="删除"></asp:ButtonColumn>
</Columns>
</asp:DataGrid>
====绑定========
private void SetBind()
{
SqlConnection conn=new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["conn"]);
SqlDataAdapter da=new SqlDataAdapter("select * from doublekey",conn);
DataSet ds=new DataSet();
da.Fill(ds);
DataTable dt=ds.Tables[0];
DataColumn dc=new DataColumn("DoubleKey",typeof(string),"key1+'#'+key2");
dt.Columns.Add(dc);
this.DataGrid1.DataSource=dt;
this.DataGrid1.DataBind();
}
=====删除====
private void DataGrid1_ItemCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
if(e.CommandName=="del")
{
SqlConnection conn=new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["conn"]);
SqlCommand comm=new SqlCommand("delete from doublekey where key1=@key1 and key2=@key2",conn);
SqlParameter parm1=new SqlParameter("@key1",SqlDbType.Int);
SqlParameter parm2=new SqlParameter("@key2",SqlDbType.Int);
string [] keys=this.DataGrid1.DataKeys[e.Item.ItemIndex].ToString().Split('#');
parm1.Value=keys[0];
parm2.Value=keys[1];
comm.Parameters.Add(parm1);
comm.Parameters.Add(parm2);
conn.Open();
comm.ExecuteNonQuery();
conn.Close();
SetBind();
}
}
- 自己实现DataKeyNames
- datakeynames
- DataKeyNames工作
- DataKeyNames,DataKeys
- DataKeys,DataKeyNames用法
- GridView控件的DataKeyNames
- GridView的DataKeyNames属性
- datakeynames datakeys的区别
- GridView.DataKeyNames 属性
- DataKeyNames、DataKeysField、DataKeys用法
- 浅谈DataKeyNames,DataKeys
- DatakeyNames和DataKeys的用法
- datakeys和datakeynames的用法!
- DatakeyNames和DataKeys的用法
- 自己实现自己的String.....
- 实现函数自己调用自己
- datakeynames的设定和取值
- datakeynames的设定和取值
- Hibernate3.2中Session接口的find()方法
- jQuery的介绍
- 领域驱动设计学习笔记(1)
- 防范AJAX风险
- 十大流行的Ajax框架
- 自己实现DataKeyNames
- 终天搞定了网站“JS脚本错误”问题
- Java Servlet API说明文档(2.1a版)
- 统计字符串的字节数
- jquery对div实现轮换效果(从上到下...)
- javascript操作Select标记中options集合
- jQuery(ajax框架)中文入门指南
- GridView 实现自定义分页、排序、查询、添加、编辑、多选删除
- SCA的java注解和API规范v100