gridview和checkboxlist的嵌套相关应用

gridview和checkboxlist的嵌套相关应用

gridview和checkboxlist的嵌套相关应用

gridview和checkboxlist的嵌套相关应用

  

复制代码 代码如下:

  <script type="text/javascript">

  function CheckBoxList1_Click(obj) {

  if(obj<10)

  {

  var vv="ctl00_PageBody_gvItem_ctl0"+obj+"_CheckBox1";

  }

  else if(obj>=10 && obj<=99)

  {

  var vv="ctl00_PageBody_gvItem_ctl"+obj+"_CheckBox1";

  }

  else{

  var vv="ctl00_PageBody_gvItem_ct"+obj+"_CheckBox1";

  }

  if(obj<10)

  {

  var vvv="ctl00_PageBody_gvItem_ctl0"+obj+"_gvInnerItem";

  }

  else if(obj>=10 && obj <=99)

  {

  var vvv="ctl00_PageBody_gvItem_ctl"+obj+"_gvInnerItem";

  }

  else

  {

  var vvv="ctl00_PageBody_gvItem_ct"+obj+"_gvInnerItem";

  }

  if(document.getElementById(vv).checked)

  {

  for(var i=0;i<document.getElementById(vvv).getElementsByTagName("input").length;i++)

  {

  if(obj<10)

  {

  var v = "ctl00_PageBody_gvItem_ctl0"+obj+"_gvInnerItem_"+i ;

  }

  else if(obj>=10 && obj<100)

  {

  var v = "ctl00_PageBody_gvItem_ctl"+obj+"_gvInnerItem_"+i ;

  }

  else

  {

  var v = "ctl00_PageBody_gvItem_ct"+obj+"_gvInnerItem_"+i ;

  }

  document.getElementById(v).checked=true;

  }

  }

  else

  {

  for(var i=0;i<document.getElementById(vvv).getElementsByTagName("input").length;i++)

  {

  if(obj<10)

  {

  var v = "ctl00_PageBody_gvItem_ctl0"+obj+"_gvInnerItem_"+i ;

  }

  else if(obj>=10 && obj<100)

  {

  var v = "ctl00_PageBody_gvItem_ctl"+obj+"_gvInnerItem_"+i ;

  }

  else

  {

  var v = "ctl00_PageBody_gvItem_ct"+obj+"_gvInnerItem_"+i ;

  }

  //alert(v);

  document.getElementById(v).checked=false;

  }

  }

  // alert(document.getElementById(vvv).getElementsByTagName("input").length);

  }

  function selectAll()

  {

  //alert(document.getElementById("ctl00_PageBody_gvItem").getElementsByTagName("input").length);

  if( document.getElementById("ctl00_PageBody_CheckBox2").checked)

  {

  for(var i=0;i<document.getElementById("ctl00_PageBody_gvItem").getElementsByTagName("input").length;i++)

  {

  if(i<8)

  {

  document.getElementById("ctl00_PageBody_gvItem_ctl0"+(i+2)+"_CheckBox1").checked=true;

  var vvv="ctl00_PageBody_gvItem_ctl0"+(i+2)+"_gvInnerItem";

  //alert(vvv);

  }else if(i>=8 && i<98)

  {

  document.getElementById("ctl00_PageBody_gvItem_ctl"+(i+2)+"_CheckBox1").checked=true;

  var vvv="ctl00_PageBody_gvItem_ctl"+(i+2)+"_gvInnerItem";

  // alert(vvv);

  }

  else

  {

  document.getElementById("ctl00_PageBody_gvItem_ct"+(i+2)+"_CheckBox1").checked=true;

  var vvv="ctl00_PageBody_gvItem_ct"+(i+2)+"_gvInnerItem";

  // alert(vvv);

  }

  for(var j=0;j<document.getElementById(vvv).getElementsByTagName("input").length;j++)

  {

  if(i<8)

  {

  var v = "ctl00_PageBody_gvItem_ctl0"+(i+2)+"_gvInnerItem_"+j ;

  }else if(i>=8 && i<98)

  {

  var v = "ctl00_PageBody_gvItem_ctl"+(i+2)+"_gvInnerItem_"+j ;

  }else

  {

  var v = "ctl00_PageBody_gvItem_ct"+(i+2)+"_gvInnerItem_"+j ;

  }

  //alert(v);

  document.getElementById(v).checked=true;

  }

  }

  }

  else

  {

  for(var i=0;i<document.getElementById("ctl00_PageBody_gvItem").getElementsByTagName("input").length;i++)

  {

  if(i<8)

  {

  document.getElementById("ctl00_PageBody_gvItem_ctl0"+(i+2)+"_CheckBox1").checked=false;

  var vvv="ctl00_PageBody_gvItem_ctl0"+(i+2)+"_gvInnerItem";

  // alert(vvv);

  }else if(i>=8 && i<98)

  {

  document.getElementById("ctl00_PageBody_gvItem_ctl"+(i+2)+"_CheckBox1").checked=false;

  var vvv="ctl00_PageBody_gvItem_ctl"+(i+2)+"_gvInnerItem";

  // alert(vvv);

  }

  else

  {

  document.getElementById("ctl00_PageBody_gvItem_ct"+(i+2)+"_CheckBox1").checked=false;

  var vvv="ctl00_PageBody_gvItem_ct"+(i+2)+"_gvInnerItem";

  // alert(vvv);

  }

  for(var j=0;j<document.getElementById(vvv).getElementsByTagName("input").length;j++)

  {

  if(i<8)

  {

  var v = "ctl00_PageBody_gvItem_ctl0"+(i+2)+"_gvInnerItem_"+j ;

  }else if(i>=8 && i<98)

  {

  var v = "ctl00_PageBody_gvItem_ctl"+(i+2)+"_gvInnerItem_"+j ;

  }else

  {

  var v = "ctl00_PageBody_gvItem_ct"+(i+2)+"_gvInnerItem_"+j ;

  }

  // alert(v);

  document.getElementById(v).checked=false;

  }

  }

  }

  }

  </script>

  <asp:GridView runat="server" ID="gvItem" OnRowDataBound="gvItem_RowCommand" DataKeyNames="state"

  Width="100%" AutoGenerateColumns="false">

  <Columns>

  <asp:TemplateField HeaderText="选择省份">

  <ItemTemplate>

  <asp:CheckBox runat="server" ID="CheckBox1" onclick="CheckBoxList1_Click(this.parentNode.parentNode.rowIndex+parseInt(1))" />

  </ItemTemplate>

  </asp:TemplateField>

  <asp:BoundField DataField="State" HeaderText="省份名称" />

  <asp:TemplateField HeaderText="选择地市">

  <ItemTemplate>

  <div style="text-align: left">

  <asp:CheckBoxList RepeatLayout="Flow" RepeatDirection="Horizontal" runat="server"

  ID="gvInnerItem" OnSelectedIndexChanged="gvInnerItem_SelectChange" AutoPostBack="false">

  </asp:CheckBoxList>

  </div>

  </ItemTemplate>

  </asp:TemplateField>

  </Columns>

  </asp:GridView>

  <asp:CheckBox ID="CheckBox2" runat="server" AutoPostBack="True" Font-Size="9pt" Text="全选"

  onclick="selectAll()" />

  

复制代码 代码如下:

  protected void gvItem_RowCommand(object sender, GridViewRowEventArgs e)

  {

  if (e.Row.RowType == DataControlRowType.DataRow)

  {

  CheckBoxList oGridView = (CheckBoxList)e.Row.FindControl("gvInnerItem");

  if (oGridView != null)

  {

  string state = gvItem.DataKeys[e.Row.RowIndex].Value.ToString();

  string sql = string.Format("select distinct(city) from CELLPHONESORT where state='{0}'", state);

  DataSet ds = MyDB.GetDataSet(sql);

  oGridView.DataSource = ds.Tables[0].DefaultView;

  oGridView.DataValueField = "city";

  oGridView.DataTextField = "city";

  oGridView.DataBind();

  }

  }

  }