<asp:DataGrid id="DataGrid1" runat="server" AutoGenerateColumns="False">
<Columns>
<asp:BoundColumn Visible="False" DataField="id" DataFormatString="{0}"></asp:BoundColumn>
<asp:HyperLinkColumn HeaderText="物资名称" DataNavigateUrlField="id" DataNavigateUrlFormatString="./ProductDetail.aspx?productID={0}"
DataTextField="name" DataTextFormatString="{0}"></asp:HyperLinkColumn>
<asp:BoundColumn HeaderText="型号" DataField="type" DataFormatString="{0}"></asp:BoundColumn>
<asp:BoundColumn HeaderText="数量" DataField="quantity" DataFormatString="{0}"></asp:BoundColumn>
<asp:BoundColumn HeaderText="单位" DataField="unit" DataFormatString="{0}"></asp:BoundColumn>
<asp:BoundColumn HeaderText="截止日期" DataField="expirationDate" DataFormatString="{0}"></asp:BoundColumn>
<asp:ButtonColumn HeaderText="删除" ButtonType="PushButton" DataTextField="id" CommandName="del" DataTextFormatString="删除{0}">
<ItemStyle Font-Size="Smaller" Font-Names="Arial" HorizontalAlign="Center" ForeColor="Aqua"
VerticalAlign="Middle" BackColor="Black"></ItemStyle>
</asp:ButtonColumn>
<asp:ButtonColumn HeaderText="修改" ButtonType="PushButton" DataTextField="id" CommandName="update"
DataTextFormatString="修改{0}">
<ItemStyle Font-Size="Smaller" Font-Names="Arial" HorizontalAlign="Center" ForeColor="Aqua"
VerticalAlign="Middle" BackColor="Black"></ItemStyle>
</asp:ButtonColumn>
</Columns>
</asp:DataGrid>
//第一列不显示,但是它记载着整个grid的纪录的主键,删除修改根据它来找到相应的纪录
给grid添加事件处理函数
this.DataGrid1.ItemCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.ExcuteItemCommand);
相应的处理如下
private void ExcuteItemCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
string ItemID = e.Item.Cells[0].Text;
if(e.CommandName=="del"){
ProductManager.DeleteProduct(ItemID);
this.Response.Redirect("./MyProductList.aspx?IsBuy="+IsBuy);
}
else if(e.CommandName=="update"){
this.Response.Redirect("./UpdateProduct.aspx?productID="+ItemID+"&IsBuy="+IsBuy);
}
}
CommandName是从
<asp:ButtonColumn HeaderText="修改" ButtonType="PushButton" DataTextField="id" CommandName="update"
DataTextFormatString="修改{0}">
过来的。
//需要注意的是,在page_load里面要价上一句,isPostBack