DataList.ItemCommand 事件
当单击 DataList 控件中的任一按钮时发生。
命名空间:System.Web.UI.WebControls
程序集:System.Web(在 system.web.dll 中)
ItemCommand 事件在单击 DataList 控件中的任一按钮时引发,并且在具有带自定义 CommandName 值的按钮控件时通常使用它。
有关处理事件的更多信息,请参见 如何:在 Web 窗体应用程序中使用事件。
下面的代码示例演示如何为 ItemCommand 事件指定和编写处理程序,以便从 DataList 控件中选择项。
注意 |
---|
以下代码示例使用单文件代码模型,当它直接复制到代码隐藏文件时可能不能正常工作。此代码示例必须被复制到具有 .aspx 扩展名的空文本文件中。有关 Web 窗体代码模型的更多信息,请参见 ASP.NET 网页代码模型。 |
<%@ Page Language=
"C#" AutoEventWireup=
"True" %>
<%@ Import Namespace= "System.Data" %>
<html>
<head>
<script runat= "server">
ICollection CreateDataSource()
{
// Create sample data for the DataList control.
DataTable dt = new DataTable();
DataRow dr;
// Define the columns of the table.
dt.Columns.Add( new DataColumn( "Item", typeof(Int32)));
dt.Columns.Add( new DataColumn( "Qty", typeof(Int32)));
dt.Columns.Add( new DataColumn( "Price", typeof( double)));
// Populate the table with sample values.
for ( int i = 0; i < 9; i++)
{
dr = dt.NewRow();
dr[0] = i;
dr[1] = i * 2;
dr[2] = 1.23 * (i + 1);
dt.Rows.Add(dr);
}
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)
{
ItemsList.DataSource = CreateDataSource();
ItemsList.DataBind();
}
}
void Item_Command(Object sender, DataListCommandEventArgs e)
{
// Set the SelectedIndex property to select an item in the DataList.
ItemsList.SelectedIndex = e.Item.ItemIndex;
// Rebind the data source to the DataList to refresh the control.
ItemsList.DataSource = CreateDataSource();
ItemsList.DataBind();
}
</script>
</head>
<body>
<form runat= "server">
<h3>DataList Select Example</h3>
Click <b>Select</b> to select an item.
<br><br>
<asp:DataList id= "ItemsList"
GridLines= "Both"
CellPadding= "3"
CellSpacing= "0"
OnItemCommand= "Item_Command"
runat= "server">
<HeaderStyle BackColor= "#aaaadd">
</HeaderStyle>
<AlternatingItemStyle BackColor= "Gainsboro">
</AlternatingItemStyle>
<SelectedItemStyle BackColor= "Yellow">
</SelectedItemStyle>
<HeaderTemplate>
Items
</HeaderTemplate>
<ItemTemplate>
<asp:LinkButton id= "SelectButton"
Text= "Select"
CommandName= "Select"
runat= "server"/>
Item <%# DataBinder.Eval(Container.DataItem, "Item") %>
</ItemTemplate>
<SelectedItemTemplate>
Item:
<asp:Label id= "ItemLabel"
Text= '<%# DataBinder.Eval(Container.DataItem, "Item") %>'
runat= "server"/>
<br>
Quantity:
<asp:Label id= "QtyLabel"
Text= '<%# DataBinder.Eval(Container.DataItem, "Qty") %>'
runat= "server"/>
<br>
Price:
<asp:Label id= "PriceLabel"
Text= '<%# DataBinder.Eval(Container.DataItem, "Price", "{0:c}") %>'
runat= "server"/>
</SelectedItemTemplate>
</asp:DataList>
</form>
</body>
</html>
<%@ Import Namespace= "System.Data" %>
<html>
<head>
<script runat= "server">
ICollection CreateDataSource()
{
// Create sample data for the DataList control.
DataTable dt = new DataTable();
DataRow dr;
// Define the columns of the table.
dt.Columns.Add( new DataColumn( "Item", typeof(Int32)));
dt.Columns.Add( new DataColumn( "Qty", typeof(Int32)));
dt.Columns.Add( new DataColumn( "Price", typeof( double)));
// Populate the table with sample values.
for ( int i = 0; i < 9; i++)
{
dr = dt.NewRow();
dr[0] = i;
dr[1] = i * 2;
dr[2] = 1.23 * (i + 1);
dt.Rows.Add(dr);
}
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)
{
ItemsList.DataSource = CreateDataSource();
ItemsList.DataBind();
}
}
void Item_Command(Object sender, DataListCommandEventArgs e)
{
// Set the SelectedIndex property to select an item in the DataList.
ItemsList.SelectedIndex = e.Item.ItemIndex;
// Rebind the data source to the DataList to refresh the control.
ItemsList.DataSource = CreateDataSource();
ItemsList.DataBind();
}
</script>
</head>
<body>
<form runat= "server">
<h3>DataList Select Example</h3>
Click <b>Select</b> to select an item.
<br><br>
<asp:DataList id= "ItemsList"
GridLines= "Both"
CellPadding= "3"
CellSpacing= "0"
OnItemCommand= "Item_Command"
runat= "server">
<HeaderStyle BackColor= "#aaaadd">
</HeaderStyle>
<AlternatingItemStyle BackColor= "Gainsboro">
</AlternatingItemStyle>
<SelectedItemStyle BackColor= "Yellow">
</SelectedItemStyle>
<HeaderTemplate>
Items
</HeaderTemplate>
<ItemTemplate>
<asp:LinkButton id= "SelectButton"
Text= "Select"
CommandName= "Select"
runat= "server"/>
Item <%# DataBinder.Eval(Container.DataItem, "Item") %>
</ItemTemplate>
<SelectedItemTemplate>
Item:
<asp:Label id= "ItemLabel"
Text= '<%# DataBinder.Eval(Container.DataItem, "Item") %>'
runat= "server"/>
<br>
Quantity:
<asp:Label id= "QtyLabel"
Text= '<%# DataBinder.Eval(Container.DataItem, "Qty") %>'
runat= "server"/>
<br>
Price:
<asp:Label id= "PriceLabel"
Text= '<%# DataBinder.Eval(Container.DataItem, "Price", "{0:c}") %>'
runat= "server"/>
</SelectedItemTemplate>
</asp:DataList>
</form>
</body>
</html>
<%@ Page Language=
"C#" AutoEventWireup=
"True" %>
<%@ Import Namespace= "System.Data" %>
<html>
<head>
<script runat= "server">
ICollection CreateDataSource()
{
// Create sample data for the DataList control.
DataTable dt = new DataTable();
DataRow dr;
// Define the columns of the table.
dt.Columns.Add( new DataColumn( "Item", typeof(Int32)));
dt.Columns.Add( new DataColumn( "Qty", typeof(Int32)));
dt.Columns.Add( new DataColumn( "Price", typeof( double)));
// Populate the table with sample values.
for ( int i = 0; i < 9; i++)
{
dr = dt.NewRow();
dr[0] = i;
dr[1] = i * 2;
dr[2] = 1.23 * (i + 1);
dt.Rows.Add(dr);
}
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)
{
ItemsList.DataSource = CreateDataSource();
ItemsList.DataBind();
}
// Manually register the event-handling method for the
// ItemCommand event.
ItemsList.ItemCommand +=
new DataListCommandEventHandler( this.Item_Command);
}
void Item_Command(Object sender, DataListCommandEventArgs e)
{
// Set the SelectedIndex property to select an item in the DataList.
ItemsList.SelectedIndex = e.Item.ItemIndex;
// Rebind the data source to the DataList to refresh the control.
ItemsList.DataSource = CreateDataSource();
ItemsList.DataBind();
}
</script>
</head>
<body>
<form runat= "server">
<h3>DataList Select Example</h3>
Click <b>Select</b> to select an item.
<br><br>
<asp:DataList id= "ItemsList"
GridLines= "Both"
CellPadding= "3"
CellSpacing= "0"
runat= "server">
<HeaderStyle BackColor= "#aaaadd">
</HeaderStyle>
<AlternatingItemStyle BackColor= "Gainsboro">
</AlternatingItemStyle>
<SelectedItemStyle BackColor= "Yellow">
</SelectedItemStyle>
<HeaderTemplate>
Items
</HeaderTemplate>
<ItemTemplate>
<asp:LinkButton id= "SelectButton"
Text= "Select"
CommandName= "Select"
runat= "server"/>
Item <%# DataBinder.Eval(Container.DataItem, "Item") %>
</ItemTemplate>
<SelectedItemTemplate>
Item:
<asp:Label id= "ItemLabel"
Text= '<%# DataBinder.Eval(Container.DataItem, "Item") %>'
runat= "server"/>
<br>
Quantity:
<asp:Label id= "QtyLabel"
Text= '<%# DataBinder.Eval(Container.DataItem, "Qty") %>'
runat= "server"/>
<br>
Price:
<asp:Label id= "PriceLabel"
Text= '<%# DataBinder.Eval(Container.DataItem, "Price", "{0:c}") %>'
runat= "server"/>
</SelectedItemTemplate>
</asp:DataList>
</form>
</body>
</html>
<%@ Import Namespace= "System.Data" %>
<html>
<head>
<script runat= "server">
ICollection CreateDataSource()
{
// Create sample data for the DataList control.
DataTable dt = new DataTable();
DataRow dr;
// Define the columns of the table.
dt.Columns.Add( new DataColumn( "Item", typeof(Int32)));
dt.Columns.Add( new DataColumn( "Qty", typeof(Int32)));
dt.Columns.Add( new DataColumn( "Price", typeof( double)));
// Populate the table with sample values.
for ( int i = 0; i < 9; i++)
{
dr = dt.NewRow();
dr[0] = i;
dr[1] = i * 2;
dr[2] = 1.23 * (i + 1);
dt.Rows.Add(dr);
}
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)
{
ItemsList.DataSource = CreateDataSource();
ItemsList.DataBind();
}
// Manually register the event-handling method for the
// ItemCommand event.
ItemsList.ItemCommand +=
new DataListCommandEventHandler( this.Item_Command);
}
void Item_Command(Object sender, DataListCommandEventArgs e)
{
// Set the SelectedIndex property to select an item in the DataList.
ItemsList.SelectedIndex = e.Item.ItemIndex;
// Rebind the data source to the DataList to refresh the control.
ItemsList.DataSource = CreateDataSource();
ItemsList.DataBind();
}
</script>
</head>
<body>
<form runat= "server">
<h3>DataList Select Example</h3>
Click <b>Select</b> to select an item.
<br><br>
<asp:DataList id= "ItemsList"
GridLines= "Both"
CellPadding= "3"
CellSpacing= "0"
runat= "server">
<HeaderStyle BackColor= "#aaaadd">
</HeaderStyle>
<AlternatingItemStyle BackColor= "Gainsboro">
</AlternatingItemStyle>
<SelectedItemStyle BackColor= "Yellow">
</SelectedItemStyle>
<HeaderTemplate>
Items
</HeaderTemplate>
<ItemTemplate>
<asp:LinkButton id= "SelectButton"
Text= "Select"
CommandName= "Select"
runat= "server"/>
Item <%# DataBinder.Eval(Container.DataItem, "Item") %>
</ItemTemplate>
<SelectedItemTemplate>
Item:
<asp:Label id= "ItemLabel"
Text= '<%# DataBinder.Eval(Container.DataItem, "Item") %>'
runat= "server"/>
<br>
Quantity:
<asp:Label id= "QtyLabel"
Text= '<%# DataBinder.Eval(Container.DataItem, "Qty") %>'
runat= "server"/>
<br>
Price:
<asp:Label id= "PriceLabel"
Text= '<%# DataBinder.Eval(Container.DataItem, "Price", "{0:c}") %>'
runat= "server"/>
</SelectedItemTemplate>
</asp:DataList>
</form>
</body>
</html>