使用断点,发现根本没有执行DetailsView1_ItemUpdating1
求高手看一下。
代码:
 protected void DetailsView1_ItemUpdating1(object sender, DetailsViewUpdateEventArgs e)
    {
        if (!IsPostBack)
        {            string str = ((DropDownList)this.DetailsView1.Rows[3].Cells[1].FindControl("DropDownList1")).SelectedValue;
            e.NewValues.Add("xb", str);
            
        }   
    }   <EditItemTemplate>
                    <asp:DropDownList ID="DropDownList1" runat="server">
                        <asp:ListItem>
                        </asp:ListItem>
                        <asp:ListItem Value="1" >1</asp:ListItem>
                        <asp:ListItem Value="2">2</asp:ListItem>
                    </asp:DropDownList>
                </EditItemTemplate>

解决方案 »

  1.   

    ItemUpdating事件,你是否改变过这个DetailsView1的值呢,不然不能触发这个事件。
      

  2.   

    DetailsView1.Rows[DetailsView1.EditIndex].FindControl("ddlGradeId") as DropDownList;
    这样能拿到不
      

  3.   

    LZ画蛇添足了,有提交动作时,不要加 if (!IsPostBack)
    protected void DetailsView1_ItemUpdating1(object sender, DetailsViewUpdateEventArgs e)
      {
      string str = ((DropDownList)this.DetailsView1.Rows[3].Cells[1].FindControl("DropDownList1")).SelectedValue;
      e.NewValues.Add("xb", str);
        
      }
      

  4.   

    不加if (!IsPostBack)我也试过的。
    现在就是想知道,在默认的update中,
    UpdateCommand="UPDATE [bsperson] SET [kb] = @kb, [jz] = @jz, [xm] = @xm, [jb] = @jb, [zw] = @zw, [rsr] = @rsr, [xb] = @xb, [csnyr] = @csnyr, [lb] = @lb, [dlrq] = @dlrq, [sszz] = @sszz, [ssbz] = @ssbz, [gwm] = @gwm, [gw] = @gw WHERE [gh] = @gh">这个是否需要更改呢?