日期:2014-05-17  浏览次数:20490 次

gridview和checkbox 高分进就给


如上图所示。
1.点选一条数据的checkbox,将这条数据填入上面对应的textbox中去.
2.怎样将checkbox设置为只能单选

------解决方案--------------------
没看到checkbox啊
可以在ItemCommand事件中 获取ID,对应查出值 在复制就好了

checkbox设置单选
C# code

方法一
<BODY>   
 <input type="checkbox" name="cbox" value="cbox1" onClick="chooseOne(this);">checkBox1   
 <input type="checkbox" name="cbox" value="cbox2" onClick="chooseOne(this);">checkBox2   
 <input type="checkbox" name="cbox" value="cbox3" onClick="chooseOne(this);">checkBox3   
 <input type="checkbox" name="cbox" value="cbox4" onClick="chooseOne(this);">checkBox4   
 </BODY>  

 <script>   
     //chooseOne()函式,參數為觸發該函式的元素本身   
     function chooseOne(cb){   
         //先取得同name的chekcBox的集合物件   
         var obj = document.getElementsByName("cbox");   
         for (i=0; i<obj.length; i++){   
             //判斷obj集合中的i元素是否為cb,若否則表示未被點選   
             if (obj[i]!=cb) obj[i].checked = false;   
             //若是 但原先未被勾選 則變成勾選;反之 則變為未勾選   
             //else  obj[i].checked = cb.checked;   
             //若要至少勾選一個的話,則把上面那行else拿掉,換用下面那行   
             else obj[i].checked = true;   
         }   
     }   
 </script>  


方法二
<BODY>   
 <div id="mydiv">   
 <input type="checkbox" name="cbox1" value="cbox1" onClick="chooseOne(this);">checkBox1  
 <input type="checkbox" name="cbox2" value="cbox2" onClick="chooseOne(this);">checkBox2  
 <input type="checkbox" name="cbox3" value="cbox3" onClick="chooseOne(this);">checkBox3  
 <input type="checkbox" name="cbox4" value="cbox4" onClick="chooseOne(this);">checkBox4  
 </div>   
</BODY>  


 <script>   
     //chooseOne()函式,參數為觸發該函式的元素本身   
     function chooseOne(cb) {   
         //先取得Div元素   
         var obj = document.getElementById("mydiv");   
         ///判斷obj中的子元素i是否為cb,若否則表示未被點選   
         for (i=0; i<obj.children.length; i++){   
             if (obj.children[i]!=cb)    obj.children[i].checked = false;   
             //若是 但原先未被勾選 則變成勾選;反之 則變為未勾選   
             else    obj.children[i].checked = cb.checked;   
             //若要至少勾選一個的話,則把上面那行else拿掉,換用下面那行   
             //else obj.children[i].checked = true;   
         }   
     }   
 </script>

------解决方案--------------------
这个建议放到后台来实现 
checkbox的事件结合GridView.Row.FindControl("checkbox")来实现
方便以后维护
如果你不想页面频繁刷新 可以在页面上包个updatePanel
------解决方案--------------------
给checkbox加个后台事件 OnCheckedChanged="ChkValue_CheckedChanged"

后台中在事件中找到你点击的checkbox所在的当前行
 protected void ChkValue_CheckedChanged(object sender, EventArgs e)
{
CheckBox ChkValue = sender as CheckBox;
int i = (ChkValue.NamingContainer as GridViewRow).RowIndex;
GridViewRow gvr = grv.Rows[i] as GridViewRow;
}
都取到这一行的GridViewRow了,剩下的就不用多说了吧

------解决方案--------------------
.怎样将checkbox设置为只能单选

-------------------------------

晕,那你怎么不用 单选按钮??? 复选按钮做成单选。

我晕。
------解决方案--------------------