适用场合:在利用数据绑定控件如:Repeater, linstview等时,因为每一项(ItemTemp;ate)只用一个ItemCommand事件,但是I有可能ItemTemplage的多个元素都可能激活这个事件,为了快速识别是谁激活这个事件时,就可以利用CommandName与CommandArgument了。
用法:在激活事件的元素属性中,如LinkButton, Button等都可以指定CommandName与CommandArgument属性,其中CommandName就是激活元素的名称,在ItemCommand的事件处理程序中确定激活元素,CommandArgument是传递给ItemCommand的事件处理程序的参数。
示例:
在web页面:
<asp:Repeater ID="Repeater1" runat="server" DataSourceID="ObjectDataSource1" OnItemCommand="Repeater1_ItemCommand">
<ItemTemplate>
<div style="height: 25px; line-height: 25px; font-size: 13px; font-weight: bolder;
word-spacing: 2px;">
<asp:LinkButton ID="LinkButtonJob" runat="server" ForeColor="#0B99EA" Font-Size="14px"
CommandName="JobDetail" CommandArgument='<%#Eval("JobID") %>'><%#Eval("JobName") %></asp:LinkButton></div>
</ItemTemplate>
</asp:Repeater>
在后台代码:
protected void Repeater1_ItemCommand(object source, RepeaterCommandEventArgs e)
{
if (e.CommandName == "JobDetail")
{
jid = e.CommandArgument.ToString();
ObjectDataSource2.SelectMethod = "GetJobByJid";
ObjectDataSource2.SelectParameters["jid"].DefaultValue = jid;
Repeater2.DataBind();
}
}