关于DataList的DataKeyField 属性
来源:互联网 发布:dev c 编程 编辑:程序博客网 时间:2024/04/25 12:39
.NET Framework 类库
BaseDataList..::.
更新:2007 年 11 月
获取或设置由 DataSource 属性指定的数据源中的键字段。
命名空间: System.Web.UI.WebControls
程序集: System.Web(在 System.Web.dll 中)
语法
Visual Basic(声明) |
<ThemeableAttribute(False)> _Public Overridable Property DataKeyField As String |
Visual Basic (用法) |
Dim instance As BaseDataListDim value As Stringvalue = instance.DataKeyFieldinstance.DataKeyField = value |
C# |
[ThemeableAttribute(false)]public virtual string DataKeyField { get; set; } |
Visual C++ |
[ThemeableAttribute(false)]public:virtual property String^ DataKeyField { String^ get (); void set (String^ value);} |
J# |
/** @property *//** @attribute ThemeableAttribute(false) */public String get_DataKeyField()/** @property *//** @attribute ThemeableAttribute(false) */public void set_DataKeyField(String value) |
JScript |
public function get DataKeyField () : Stringpublic function set DataKeyField (value : String) |
ASP.NET |
<asp:BaseDataList DataKeyField="String" /> |
备注
使用 DataKeyField 属性指定由 DataSource 属性指示的数据源中的键字段。指定的字段用于填充 DataKeys 集合。这使您可以用数据列表控件存储键字段而无需在控件中显示它。键字段通常在事件处理程序(例如 ItemCommand 或 DeleteCommand)中用作更新查询字符串的一部分,以修改数据源中的特定记录。键字段帮助更新查询字符串标识要修改的适当记录。
无法通过主题或样式表主题设置此属性。有关更多信息,请参见 ThemeableAttribute 和 ASP.NET 主题和外观概述。
示例
下面的代码示例演示如何使用 DataKeyField 属性来指定数据源的键字段。
Visual Basic |
<%@ Page Language="VB" AutoEventWireup="True" %><%@ Import Namespace="System.Data" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html ><head runat="server"> <title>BaseDataList DataKeys and DataKeyField Example</title><script runat="server"> Function CreateDataSource() As ICollection ' Create sample data for the DataGrid control. Dim dt As DataTable = New DataTable() Dim dr As DataRow ' Define the columns of the table. dt.Columns.Add(new DataColumn("IntegerValue", GetType(Integer))) dt.Columns.Add(new DataColumn("StringValue", GetType(String))) dt.Columns.Add(new DataColumn("CurrencyValue", GetType(Double))) ' Define the primary key for the table as the IntegerValue ' column (column 0). To do this, first create an array of ' DataColumns to represent the primary key. The primary key can ' consist of multiple columns, but in this example, only ' one column is used. Dim keys(1) As DataColumn keys(0) = dt.Columns(0) ' Then assign the array to the PrimaryKey property of the DataTable. dt.PrimaryKey = keys ' Populate the table with sample values. Dim i As Integer For i = 0 To 8 dr = dt.NewRow() dr(0) = i dr(1) = "Item " & i.ToString() dr(2) = 1.23 * (i + 1) dt.Rows.Add(dr) Next ' To persist the data source between posts to the server, ' store it in session state. Session("Source") = dt Dim dv As DataView = New DataView(dt) Return dv End Function Sub Page_Load(sender As Object, e As EventArgs) ' Load sample data only once, when the page is first loaded. If Not IsPostBack Then ItemsGrid.DataSource = CreateDataSource() ItemsGrid.DataBind() End If End Sub Sub Delete_Command(sender As Object, e As DataGridCommandEventArgs) ' Retrieve the data table from session state. Dim dt As DataTable = CType(Session("Source"), DataTable) ' Retrieve the data row to delete from the data table. ' Use the DataKeys property of the DataGrid control to get ' the primary key value of the selected row. ' Search the Rows collection of the data table for this value. Dim row As DataRow row = dt.Rows.Find(ItemsGrid.DataKeys(e.Item.ItemIndex)) ' Delete the item selected in the DataGrid from the data source. If Not row is Nothing Then dt.Rows.Remove(row) End If ' Save the data source. Session("Source") = dt ' Create a DataView and bind it to the DataGrid control. Dim dv As DataView = New DataView(dt) ItemsGrid.DataSource = dv ItemsGrid.DataBind() End Sub </script></head><body> <form id="form1" runat="server"> <h3>BaseDataList DataKeys and DataKeyField Example</h3> <asp:DataGrid id="ItemsGrid" BorderColor="Black" ShowFooter="False" CellPadding="3" CellSpacing="0" HeaderStyle-BackColor="#aaaadd" DataKeyField="IntegerValue" OnDeleteCommand="Delete_Command" runat="server"> <Columns> <asp:ButtonColumn Text="Delete" CommandName="Delete"/> </Columns> </asp:DataGrid> </form></body></html> |
C# |
<%@ Page Language="C#" AutoEventWireup="True" %><%@ Import Namespace="System.Data" %><%@ Import Namespace="System.Data.SqlClient" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html ><head runat="server"> <title>BaseDataList DataKeys Example</title><script runat="server"> ICollection CreateDataSource() { // Create sample data for the DataGrid control. DataTable dt = new DataTable(); DataRow dr; // Define the columns of the table. dt.Columns.Add(new DataColumn("IntegerValue", typeof(Int32))); dt.Columns.Add(new DataColumn("StringValue", typeof(string))); dt.Columns.Add(new DataColumn("CurrencyValue", typeof(double))); // Define the primary key for the table as the IntegerValue // column (column 0). To do this, first create an array of // DataColumns to represent the primary key. The primary key can // consist of multiple columns, but in this example, only // one column is used. DataColumn[] keys = new DataColumn[1]; keys[0] = dt.Columns[0]; // Then assign the array to the PrimaryKey property of the DataTable. dt.PrimaryKey = keys; // Populate the table with sample values. for (int i = 0; i < 9; i++) { dr = dt.NewRow(); dr[0] = i; dr[1] = "Item " + i.ToString(); dr[2] = 1.23 * (i + 1); dt.Rows.Add(dr); } // To persist the data source between posts to the server, // store it in session state. Session["Source"] = dt; DataView dv = new DataView(dt); return dv; } void Page_Load(Object sender, EventArgs e) { // Load sample data only once, when the page is first loaded. if (!IsPostBack) { ItemsGrid.DataSource = CreateDataSource(); ItemsGrid.DataBind(); } } void Delete_Command(Object sender, DataGridCommandEventArgs e) { // Retrieve the data table from session state. DataTable dt = (DataTable)Session["Source"]; // Retrieve the data row to delete from the data table. // Use the DataKeys property of the DataGrid control to get // the primary key value of the selected row. // Search the Rows collection of the data table for this value. DataRow row; row = dt.Rows.Find(ItemsGrid.DataKeys[e.Item.ItemIndex]); // Delete the item selected in the DataGrid from the data source. if(row != null) { dt.Rows.Remove(row); } // Save the data source. Session["Source"] = dt; // Create a DataView and bind it to the DataGrid control. DataView dv = new DataView(dt); ItemsGrid.DataSource = dv; ItemsGrid.DataBind(); } </script></head><body> <form id="form1" runat="server"> <h3>BaseDataList DataKeys Example</h3> <asp:DataGrid id="ItemsGrid" BorderColor="Black" ShowFooter="False" CellPadding="3" CellSpacing="0" HeaderStyle-BackColor="#aaaadd" DataKeyField="IntegerValue" OnDeleteCommand="Delete_Command" runat="server"> <Columns> <asp:ButtonColumn Text="Delete" CommandName="Delete"/> </Columns> </asp:DataGrid> </form></body></html> |
- 关于DataList的DataKeyField 属性
- datalist绑定时DataList.DataKeyField和DataList.DataKey的用法
- DataList数据绑定时DataList.DataKeyField和DataList.DataKey的用法
- 实现datagrid编辑功能需要设置DataKeyField属性的值
- DataList控件DataKeyField以及DataKeys区别
- datakeyfield
- DataKeyField
- DataList的RepeatLayout属性
- 没有DataKeyField而用DataKeyNames的用法。
- 关于DataGrid/DataList的东东
- datalist控件的DataSourceID与DataSource属性
- 关于嵌套使用DataList的心得[原创]
- 关于DataList的一些使用技巧
- 关于DataList的自定义分页问题
- 关于DATALIST和GRIDVIEW分页的方法
- H5 -input datalist属性
- 从DataList继承的自定义控件如何实现RepeatColumns属性
- 利用CommandArgument 属性获取 datalist的中 控件数据绑定
- FCKeditor2.6.3的一些其他设置
- ASP.NET ViewState 初探
- Delphi自定义组件(1)
- (转载)使用 Windows XP 的外观风格
- Oracle批量插入日期
- 关于DataList的DataKeyField 属性
- 好样的,猪猪~~
- Delphi 组件编写--扑克牌组件
- 讲解SQL Server定时作业job的设置方法
- PetShop的系统架构设计
- 被爱 (转)
- page cache 与buffer cache
- VS2005下写DLL应该注意的问题
- 大象-Thinking in UML早知道 -- 001--公告