我在DataGrid里加入两个ImageButton 保存和删除,设置了它们的属性 分别为CommandName="update" 和 CommandName="del"。如下:<asp:TemplateColumn>
<HeaderTemplate>
保存
</HeaderTemplate>
<ItemTemplate>
<asp:ImageButton id="ImagebuttonSave" runat="server" ImageUrl="../images/save.gif" CommandName="update"></asp:ImageButton>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn>
<HeaderTemplate>
删除
</HeaderTemplate>
<ItemTemplate>
<asp:ImageButton id="ImagebuttonDel" runat="server" ImageUrl="../images/delete.gif" CommandName="del"></asp:ImageButton>
</ItemTemplate>
</asp:TemplateColumn>然后在后台代码中加入如下事件:
this.DataGrid2.ItemCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.DataGrid2_ItemCommand);
private void DataGrid2_ItemCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
string name = e.CommandName;
this.lblMessage.Text = name; // 我发现这里的name根本没有值,好象
//DataGrid2.ItemCommand没有传过来,不知道怎么回事?
if(name.Equals("update"))
{
} if(name.Equals("del"))
{
}
}因为按每行“保存”和“删除”按钮都没有反应,经检查,我发现上面的name根本没有值,就没法进行下去了,好象DataGrid2.ItemCommand没有传过来,不知道怎么回事?
是还有其它属性没设还是。?请各位高手帮忙。急!在线等谢谢先!
<SelectedItemStyle CssClass="result_select"></SelectedItemStyle>
<AlternatingItemStyle CssClass="result_content_"></AlternatingItemStyle>
<ItemStyle CssClass="result_content"></ItemStyle>
<HeaderStyle CssClass="result_head"></HeaderStyle>
<Columns>
<asp:TemplateColumn>
<HeaderTemplate>
材料人员标识
</HeaderTemplate>
<ItemTemplate>
<asp:Label id="lblfId" runat="server" text='<%#DataBinder.Eval(Container.DataItem,"fId").ToString() %>'></asp:Label>
</ItemTemplate>
</asp:TemplateColumn> <asp:TemplateColumn>
<HeaderTemplate>
姓名
</HeaderTemplate>
<ItemTemplate>
<asp:TextBox id="txtfName" runat="server" Text='<%# DataBinder.Eval(Container.DataItem,"fName").ToString() %>' ></asp:TextBox>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn>
<HeaderTemplate>
证件号码
</HeaderTemplate>
<ItemTemplate>
<asp:TextBox id="txtfIDCard" runat="server" Text='<%# DataBinder.Eval(Container.DataItem,"fIDCard").ToString() %>' ></asp:TextBox>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn>
<HeaderTemplate>
保存
</HeaderTemplate>
<ItemTemplate>
<asp:ImageButton id="ImagebuttonSave" runat="server" ImageUrl="../images/save.gif" CommandName="update"></asp:ImageButton>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn>
<HeaderTemplate>
删除
</HeaderTemplate>
<ItemTemplate>
<asp:ImageButton id="ImagebuttonDel" runat="server" ImageUrl="../images/delete.gif" CommandName="del"></asp:ImageButton>
</ItemTemplate>
</asp:TemplateColumn>
</Columns> <PagerStyle Visible="False" NextPageText="5" PrevPageText="6" HorizontalAlign="Right" ForeColor="Black" Mode="NumericPages"></PagerStyle>
</asp:datagrid>
aspx.cs中的相关代码:this.DataGrid2.ItemCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.DataGrid2_ItemCommand);
private void DataGrid2_ItemCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
string strFunitId=getUnitId();
string strFGlidNo=getGlidNo();
string name = e.CommandName;
this.lblMessage.Text = name; // 我发现这里的name根本没有值,好象DataGrid2.ItemCommand没有传过来,不知道怎么回事?
if(name.Equals("update"))
{
DataGrid2.SelectedIndex = e.Item.ItemIndex;
Label LB = (Label)DataGrid2.Items[DataGrid2.SelectedIndex].FindControl("lblfId");
TextBox txt1 = (TextBox)DataGrid2.Items[DataGrid2.SelectedIndex].FindControl("txtfName");
TextBox txt2 = (TextBox)DataGrid2.Items[DataGrid2.SelectedIndex].FindControl("txtfIDCard"); //记得还要加入身份证验证 //更新材料登记人员基本信息
BasicPersonManagement bpm = new BasicPersonManagement();
t_basis_personDto bdto = new t_basis_personDto();
bdto.fPersonId = LB.Text.ToString().Trim().Substring(9);
bdto.fIDCard = txt2.Text.ToString().Trim();
bdto.fName = txt1.Text.ToString().Trim();
bpm.UpdateBasisPerson(bdto);
this.Alert("保存成功!");
string url="UI-SD-A04-008.aspx?fUnitId=" +strFunitId+"->fGlideNO="+strFGlidNo;
Response.Redirect(url);
} if(name.Equals("del"))
{
DataGrid2.SelectedIndex = e.Item.ItemIndex;
Label LB = (Label)DataGrid2.Items[DataGrid2.SelectedIndex].FindControl("lblfId");
//删除材料登记人员信息
MaterialRegistManagement p = new MaterialRegistManagement();
t_bmaterial_personDto dto = new t_bmaterial_personDto();
dto.fId = LB.Text.ToString().Trim();
p.DelBmaterialPerson(dto);
//删除材料登记人员基本信息 BasicPersonManagement bm = new BasicPersonManagement();
t_basis_personDto bdto = new t_basis_personDto();
dto.fPersonId = LB.Text.ToString().Trim().Substring(9);
bm.DelBasicMaterialPerson(bdto);
this.Alert("删除成功!"); string url="UI-SD-A04-008.aspx?fUnitId=" +strFunitId+"->fGlideNO="+strFGlidNo;
Response.Redirect(url);
}
}
{}
if( e.CommandName == "删除" )
{}
<%@ Page Language="C#" AutoEventWireup="True" Debug="true" %>
<%@ Import Namespace="System.Data" %>
<html>
<script runat="server">
DataTable Cart = new DataTable();
DataView CartView;
void Page_Load(Object sender, EventArgs e)
{
GetSource();
if (!IsPostBack)
{
BindGrid(); }
}
void BindGrid()
{
ItemsGrid.DataSource = CartView;
ItemsGrid.DataBind(); } void GetSource()
{
DataRow dr;
Cart.Columns.Add(new DataColumn("Qty", typeof(Int32)));
Cart.Columns.Add(new DataColumn("Item", typeof(String)));
Cart.Columns.Add(new DataColumn("Price", typeof(Double)));
for (int i = 1; i <= 9; i++)
{
dr = Cart.NewRow();
if (i % 2 != 0)
{
dr[0] = 2;
}
else
{
dr[0] = 1;
}
dr[1] = "Item " + i.ToString();
dr[2] = (1.23 * (i + 1));
Cart.Rows.Add(dr);
}
CartView = new DataView(Cart);
CartView.Sort="Item"; return; } void ItemsGrid_Command(Object sender, DataGridCommandEventArgs e)
{ string a = ((ImageButton)e.CommandSource).CommandName;
Response.Write(a);
switch(a)
{
case "del":
break; default:
// Do nothing.
break; } }
</script>
<body>
<form runat="server" ID="Form1">
<asp:DataGrid id="ItemsGrid" BorderColor="black" BorderWidth="1" CellPadding="3" OnItemCommand="ItemsGrid_Command"
AutoGenerateColumns="false" runat="server">
<Columns>
<asp:TemplateColumn>
<ItemTemplate>
<asp:ImageButton id="ImagebuttonSave" runat="server" ImageUrl="../images/save.gif" CommandName="update"></asp:ImageButton>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn>
<ItemTemplate>
<asp:ImageButton id="ImagebuttonDel" runat="server" ImageUrl="../images/delete.gif" CommandName="del"></asp:ImageButton>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
</asp:DataGrid>
</form>
</body>
</html>