当前位置: 代码迷 >> ASP.NET >> gridview跟checkbox 高分进就给
  详细解决方案

gridview跟checkbox 高分进就给

热度:4588   发布时间:2013-02-25 00:00:00.0
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设置为只能单选

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

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

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