<asp:GridView ID="GridView1" runat="server     DataKeyNames="ID"   >
            <Columns>
                  <asp:TemplateField HeaderText="选">
                       <ItemTemplate>
                        <asp:CheckBox ID="cbDel" runat="server"       onclick="getValue_onclick()"     OnCheckedChanged="cbdel_click"   AutoPostBack="true"/>
                    
                      </ItemTemplate>
                   </asp:TemplateField>
                  <asp:BoundField DataField="size" HeaderText="年代" SortExpression="Year" />
                  <asp:BoundField DataField="IMDB" HeaderText="IMDB" SortExpression="IMDB" />
   <div id="menu3" class="fixed"><span>已选影片大小</span><asp:label   runat="server" ID="lbltotal" type="text" /><span id="span1">G</span>
    
   </div>
    lbltotal 这个label 显示一个总的容量,如果gridview 中某行的checkbox 选中的话,就把该行的size值加入进去,如果取消选中就减去,  需要考虑到分页的情况,请用js实现 。这里必须用 asp:CheckBox ,不能我用input,因为我在 OnCheckedChanged 方法中有些逻辑要实现

解决方案 »

  1.   

    搜索下
    gridview七十二般绝技
      

  2.   

    JS操作GridView不是很好操作,但也是可以操作的,反正就是一个ID要搞清楚,因为runat at server 的控件生成的客户端ID就不再是原来的ID,所以要操作GridView得看一下生成的HTML源码里面你想要操作的控件的ID然后根据ID操作它们了。
      

  3.   


      if (!IsPostBack)
                {
                    GridView1.DataSource = BindToGv();
                    GridView1.DataBind();
                    for (int i = 0; i < GridView1.Rows.Count; i++)
                    {
                        CheckBox checkbok = GridView1.Rows[i].Cells[0].Controls[1] as CheckBox;
                        checkbok.Attributes.Add("onclick", "checkobj(this)");
                    }
                }function checkobj(obj){
    if(obj.checked==true)
    {
    var inputValue = obj.parentNode.parentNode.childNodes[1].childNodes[0].value;
    obj.parentNode.parentNode.childNodes[2].childNodes[0].value = inputValue;
    }
    else
    {
    obj.parentNode.parentNode.childNodes[2].childNodes[0].value='';
    }
    }
    真麻烦~~~~~~~~~~~~~~~~~~