首先在Datagrid里设置OnItemCommand事件,指向处理函数,然后在模板列加button,设置button的CommandName属性,在后台根据CommandName来判断点击了那个button,并进行处理。
<asp:DataGrid id="DataGrid1" runat="server" OnItemCommand="itemComm">
<Columns>
<asp:TemplateColumn HeaderText="比较1">
<ItemTemplate>
<asp:Label id=Button2 runat="server">
<%# DataBinder.Eval(Container.DataItem,"id")+@"/"+ DataBinder.Eval(Container.DataItem,"project")%>
</asp:Label>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="比较2">
<ItemTemplate>
<asp:Button ID=btn1 Runat=server CommandName="test1" Text=<%# DataBinder.Eval(Container.DataItem,"id")%>>
</asp:Button>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="比较3">
<ItemTemplate>
<asp:Button ID="Button3" Runat=server CommandName="test2" Text=<%# DataBinder.Eval(Container.DataItem,"id")%>>
</asp:Button>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
</asp:DataGrid>
后台的函数:
public void itemComm(object sender,DataGridCommandEventArgs e)
{
switch(Convert.ToString(((Button)e.CommandSource).CommandName))
{
case "test1":
this.button1.Text=e.Item.ItemIndex.ToString();
break;
case "test2":
this.button1.Text=e.Item.ID.ToString();
break;
}
}