1.验证gridview控件的编辑行:
    原来datagrid中 在ItemDatabound中 
      //判断是否是编辑项
      if(e.Item.ItemType == ListItemType.EditItem)
     {
         //添加验证事件
     }
    但 现在的 RowDataBound没有表示编辑项了 ,不知怎么表示?2.获得gridview模板列<ItemTemplate/>中Label值
    由于采用编辑模板,要后台获得
<ItemTemplate>
   <asp:Label ID="lblClass" runat="server" Text='<%# Bind("MachineType_Class") %>'></asp:Label>
</ItemTemplate>
    lblClass值 ,根据控件label值显示不同的值,在RowDataBound怎么获取?

解决方案 »

  1.   

    1  if ((e.Row.RowState & DataControlRowState.Edit) != 0)
    2   if (e.Row.RowType==DataControlRowType.DataRow)
    {
    Label ddl = (Label)e.Row.FindControl("lblClass");
    ddl.Text="label";
    }
      

  2.   

    To jc15271149(嘿咻) :
       谢谢!Q2已经好了;但在rowdatabound事件中 这两个不能共存:
    if (e.Row.RowType == DataControlRowType.DataRow)
            {
                Label lblClassNo = (Label)e.Row.FindControl("lblClass");
                string nClass = lblClassNo.Text.Trim();
                switch (nClass)
                {
                    case "0":
                        lblClassNo.Text = "0-Knitting Machine";
                        break;
                    case "1":
                        lblClassNo.Text = "1-Seaming Machine";
                        break;
                    case "5":
                        lblClassNo.Text = "5-Other Machine";
                        break;
                    default:
                        break;
                }
            }        if((e.Row.RowState & DataControlRowState.Edit)!= 0)
            {
                //找到编辑项中的ddlProductID下拉列表控件
                DropDownList drpClassNo = (DropDownList)e.Row.FindControl("ddlClass");
                //设置在上个操作中ddlProductID下拉列表中选中的项
                drpClassNo.SelectedIndex = drpClassNo.Items.IndexOf(drpClassNo.Items.FindByText(EditClassName));             
            }