我想在GridView中的编辑模板中使用DropDownList,并能绑定数据字段,怎样做才能使下拉列表正确显示出数据字段(用合适的选项),并能顺利更新。

解决方案 »

  1.   

    <ItemTemplate> 
    <asp:DropDownList ID="ddlSort" runat="server" Width="98%">
      </asp:DropDownList>
     <asp:HiddenField ID="Hd_Sort" runat="server" Value='<%# Eval("BalSort")%>' />
    </ItemTemplate>
     protected void gv_RowDataBound(object sender, GridViewRowEventArgs e)
      {
      if (e.Row.RowIndex != -1)
      { if (e.Row.RowState == DataControlRowState.Edit || e.Row.RowState == (DataControlRowState.Alternate | DataControlRowState.Edit))
      {
      ((DropDownList)e.Row.FindControl("ddlSort")).SelectedValue = ((HiddenField)e.Row.FindControl("Hd_Sort")).Value;
      }
      }
      } protected void gv_RowEditing(object sender, GridViewEditEventArgs e)
      {
      gv.EditIndex = e.NewEditIndex;
      string strSort = ((DropDownList)gv.Rows[e.NewEditIndex].FindControl("ddlSort")).SelectedValue.Trim();
      gv.EditIndex = -1;
      BindData();
      } 
      

  2.   

    1.在GridView模板列中添加DropDownList并设置AutoPostback属性为true。  2.再在DropDownList的SelectedIndexChanged事件里写下面几句话。  DropDownList ddl = (DropDownList)sender; //得到当前的DropDownList  GridViewRow gvr = (GridViewRow)ddl.NamingContainer; //获取对DropDownList的容器引用  //得到gvr后就好办了查找下面的子控件。  DropDownList ddl2 = (DropDownList)gvr.FindControl("DDl2")  再给ddl2绑定数据