亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > .NET > 正文

asp.net GridView中使用RadioButton單選按鈕的方法

2024-07-10 13:31:02
字體:
來源:轉載
供稿:網友

本文實例講述了asp.net GridView中使用RadioButton單選按鈕的方法。分享給大家供大家參考,具體如下:

在GridView里做單選按鈕,我用了三種方法

第一種方法:在GridView的模版列里加服務器端控件RadioButton,使用js控制單選

使用模版列里加RadioButton

<script type="text/javascript"> function setRadio(nowRadio) { var myForm,objRadio; myForm=document.forms[0]; /**////alert(myForm); for(var i=0;i<myForm.length;i++) { if(myForm.elements[i].type=="radio") { objRadio=myForm.elements[i]; /**////alert(objRadio.name); if(objRadio!=nowRadio && objRadio.name.indexOf("GridView1")>-1 && objRadio.name.indexOf("RadioButton1")>-1) { alert(objRadio.name); if(objRadio.checked) { objRadio.checked=false; } } } } }</script>
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" ShowHeader="False" OnRowDataBound="GridView1_RowDataBound"><Columns><asp:TemplateField><ItemTemplate><asp:RadioButton ID="RadioButton1" runat="server"/></ItemTemplate></asp:TemplateField></Columns></asp:GridView><asp:Button ID="Button1" runat="server" Text="取選項" OnClick="Button1_Click"/><asp:Label ID="Label1" runat="server"></asp:Label>

前面那段代碼就是控制單選的js,在這里,我使用了遍歷頁面上所有控件的方法,加入了條件,就是紅色那個判斷,只控制GridView1里id是RadioButton1生成的單選按鈕

這種辦法需要綁定客戶端事件

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e){//給每個RadioButton1綁定setRadio事件try{((RadioButton)e.Row.FindControl("RadioButton1")).Attributes.Add("onclick", "setRadio(this)");}catch (Exception){ }}

取值的方法就是遍歷GridView的每一行,取選中的控件

protected void Button1_Click(object sender, EventArgs e){//使用模版列里加RadioButtonLabel1.Text = "";foreach (GridViewRow gvr in GridView1.Rows){try{if (((RadioButton)gvr.FindControl("RadioButton1")).Checked){Label1.Text = "當前選中第" + Convert.ToString(gvr.RowIndex + 1) + "個";break;}}catch (Exception){ }}if (Label1.Text.Length == 0){Label1.Text = "沒有選中項";}}

這種方法,在客戶端和服務器端都使用了遍歷

第二種方法:在GridView的模版列里,加html控件Radio

使用模版列里加html控件Radio

<asp:GridView ID="GridView2" runat="server" AutoGenerateColumns="False" ShowHeader="False"><Columns><asp:TemplateField><ItemTemplate><input type="radio" name="myRadio" value='<%# Container.DataItemIndex.ToString() %>'></ItemTemplate></asp:TemplateField></Columns></asp:GridView><asp:Button ID="Button2" runat="server" Text="取選項" OnClick="Button2_Click" /><asp:Label ID="Label2" runat="server"></asp:Label>
<script type="text/javascript">function setNowRadio(v){//alert(v);var myForm,objRadio;myForm=document.forms[0];for(var i=0;i<myForm.length;i++){if(myForm.elements[i].type=="radio"){objRadio=myForm.elements[i];//alert(objRadio.name);//alert(objRadio.value);if(objRadio.value==v){objRadio.checked=true;}}}}<asp:Literal ID="jsLiteral" runat="server"></asp:Literal></script>

前面那句<input type="radio" name="myRadio" value='<%# Container.DataItemIndex.ToString() %>'>,我在他的value值里,綁定的是當前行,因為一般在GridView里操作的時候,我們經常要用的是選中的行號,有了行號,我們就可以取GridView的DataKeys了

因為這里使用的是html控件,所以取數據的時候,要使用Request.Form

protected void Button2_Click(object sender, EventArgs e){//使用模版列里加html控件Radioif (Request.Form["myRadio"] == null){Label2.Text = "沒有選中項";jsLiteral.Text = "";//*****}else{string value;value = Request.Form["myRadio"].ToString();Label2.Text = "當前選中第" + Convert.ToString(Convert.ToInt16(value) + 1) + "個";jsLiteral.Text = "setNowRadio('" + value + "');";//*****}}

這種方法自己,是不用遍歷控件就可以完成任務的

就是因為使用的是客戶端控件,所以選中的值不可以寫入viewstate里面,如果有頁面回傳,這個值就不可以保留了,如果要在頁面回傳后還保留這個值,就要使用js,看注釋里有****的那段代碼,我選設置了一個setNowRadio(),然后呢加入Literal控件

在每一次回傳的時候,嗯,因為我這里只有取值需要回傳,所以我寫在了取值那里,其實是應該寫在Page_Load事件里的,加上if (IsPostBack)的判斷,就是每次回傳,就要取這個myRadio的值,執行函數,重新選擇已經選中的項

在這個setNowRadio里,又用到了遍歷,就是他比第一種方法遍歷的東西少

第三種方法:直接使用RadioButtonList模擬表格

使用RadioButtonList

<asp:RadioButtonList ID="RadioButtonList1" runat="server"></asp:RadioButtonList><asp:Button ID="Button3" runat="server" Text="取選項" OnClick="Button3_Click" /><asp:Label ID="Label3" runat="server"></asp:Label>

我在這里模擬的是一個像論壇里,顯示投票頁面的東西,就是給出一個單選框,后面寫選項內容,然后是一個圖片,再顯示有幾票

private void SetListItem(RadioButtonList rbt){//給RadioButtonList加幾個ListItem,用來測試數據string item, space, info;int per;for (int i = 0; i < 3; i++){per = 5;item = "<div style='float:left; width:300px;'> 第 " + Convert.ToString(i + 1) + " 項</div>";space = Convert.ToString(per * 3.50);space = "<div style='float:left; background-color:MistyRose;border-color:Silver;border-width:1px;border-style:solid; width:" + space + "px;'></div>";info = "<div style='float:left; width:70px;'>  " + per.ToString() + "%  5票</div>";info = item + space + info;RadioButtonList1.Items.Add(new ListItem(info, ""));}}

這種方法解決了單選的問題,解決了回傳的問題,因為RadioButtonList本來就是生成一組Radio控件的,就是,在模擬的時候很麻煩,我這里使用了很多div+css,就是,我還是沒有辦法做到讓生成的radio和選項放在同一行上

下面是生成的html代碼里的一行:

<tr><td><input id="RadioButtonList1_0" type="radio" name="RadioButtonList1" value="" /><label for="RadioButtonList1_0"><div style='float:left; width:300px;'> 第 1 項</div><div style='float:left; background-color:MistyRose;border-color:Silver;border-width:1px;border-style:solid; width:17.5px;'></div><div style='float:left; width:70px;'>  5%  5票</div></label></td></tr>

div是塊級元素,使用了float:left,也不可以讓他們和radio在同一行上,如果可以把頁面的寬度控制,比如確定是788px,那我們就可以使用float:right; text-align:left;來控制,就是很多時候,是不允許用px控制頁面寬度的

另外的一個辦法是直接寫代碼

protected void rbtnSel_CheckedChanged(object sender, EventArgs e){for (int i = 0; i < this.GridView1.Rows.Count; i++){((RadioButton)this.GridView1.Rows[i].FindControl("rbtnSel")).Checked = false;}((RadioButton)sender).Checked = true;//經典}


注:相關教程知識閱讀請移步到ASP.NET教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产综合在线观看视频| 午夜精品久久久久久久久久久久| 中文字幕日韩欧美精品在线观看| 欧美日韩午夜视频在线观看| 日韩精品福利网站| 欧美一区二区三区免费视| 狠狠躁夜夜躁人人爽天天天天97| 亚洲第一综合天堂另类专| 欧美疯狂做受xxxx高潮| 国产精品三级久久久久久电影| 96国产粉嫩美女| 亚洲老头同性xxxxx| 性欧美视频videos6一9| 欧美日韩国产综合视频在线观看中文| 久久精品国产清自在天天线| 日韩欧美在线中文字幕| 欧美激情综合亚洲一二区| 在线视频欧美日韩精品| 永久免费看mv网站入口亚洲| 国产欧美日韩精品在线观看| 亚洲影视九九影院在线观看| 亚洲欧美日韩国产成人| 久久精品国产亚洲精品2020| 国产在线98福利播放视频| 国产主播喷水一区二区| 欧美黑人一区二区三区| 国产精品午夜一区二区欲梦| 欧美人与性动交| 欧美在线一区二区视频| 91在线免费看网站| 91网站在线免费观看| 国产欧美婷婷中文| 福利视频第一区| 欧美性生交xxxxxdddd| 亚洲韩国青草视频| 国产欧美精品一区二区三区-老狼| 日韩亚洲第一页| 日韩中文理论片| 欧美精品18videos性欧| 久久69精品久久久久久国产越南| 在线性视频日韩欧美| 中文字幕欧美日韩| 欧美高清不卡在线| 成人网在线免费观看| 欧美精品免费播放| 欧美成在线观看| 高清日韩电视剧大全免费播放在线观看| 中文字幕日韩欧美| 成人黄色在线观看| 成人免费看吃奶视频网站| 亚洲成人久久久| 精品国产欧美一区二区三区成人| 国产ts一区二区| 亚洲精品按摩视频| 亚洲黄色成人网| 久久久999精品视频| 欧美情侣性视频| 亚洲影视九九影院在线观看| 日韩精品小视频| 大伊人狠狠躁夜夜躁av一区| 久久人人爽国产| 久久久噜噜噜久久久| 91久久久久久久久久久久久| 在线视频日本亚洲性| 国产在线视频不卡| 亚洲开心激情网| 秋霞成人午夜鲁丝一区二区三区| 国产不卡视频在线| 日本韩国在线不卡| 按摩亚洲人久久| 久久精品国产69国产精品亚洲| 久久久av亚洲男天堂| 黄色精品一区二区| 亚洲一二三在线| 国产精品96久久久久久| 国产精品高清在线| 国产精品白嫩美女在线观看| 永久免费精品影视网站| 国产精品专区h在线观看| 国产精品久久精品| 97久久精品视频| 欧美制服第一页| 国产美女高潮久久白浆| 欧美激情中文字幕在线| 国产日韩欧美综合| 久久6精品影院| 国产盗摄xxxx视频xxx69| 91国内免费在线视频| 色综合久久精品亚洲国产| 国产91色在线免费| 日韩精品中文字幕视频在线| 亚洲国产成人久久综合| 欧美激情区在线播放| 日韩在线观看免费高清| 日本一欧美一欧美一亚洲视频| 欧美激情网友自拍| 精品无码久久久久久国产| 91福利视频网| 国产日韩欧美自拍| 日av在线播放中文不卡| 亚洲无av在线中文字幕| 日韩免费在线播放| 亚洲成人免费网站| 久久久久久国产| 亚洲夜晚福利在线观看| 亚洲一区二区三区xxx视频| 日韩av手机在线看| 色偷偷综合社区| 精品呦交小u女在线| 伊人久久久久久久久久| 亚洲国产女人aaa毛片在线| 欧美精品制服第一页| 精品国产美女在线| 欧美激情视频一区二区三区不卡| 成人h片在线播放免费网站| 国产精品露脸av在线| 精品久久久久久久大神国产| 欧美成人激情图片网| 日韩欧美精品在线观看| 久久精品夜夜夜夜夜久久| 欧美体内谢she精2性欧美| 亚洲午夜av久久乱码| 亚洲第一精品久久忘忧草社区| 国产精品日韩在线观看| 亚洲欧洲美洲在线综合| 久久91亚洲人成电影网站| 国产一区二区欧美日韩| 亚州av一区二区| 亚洲伊人第一页| 91最新国产视频| 亚洲福利视频专区| 中文字幕亚洲欧美日韩高清| 78色国产精品| 久久青草福利网站| 中文字幕av一区| 欧美日韩中文字幕在线视频| 成人黄色av网| 成人精品在线视频| 18一19gay欧美视频网站| www.日韩.com| 日韩欧美在线视频日韩欧美在线视频| 中文字幕视频一区二区在线有码| 亚洲国产一区二区三区在线观看| 一区三区二区视频| 亚洲人午夜色婷婷| 国产精品草莓在线免费观看| 久久中国妇女中文字幕| 色哟哟网站入口亚洲精品| 国产精品18久久久久久首页狼| 欧美午夜精品在线| 久久久久亚洲精品国产| 国产一区二区美女视频| 久久久免费在线观看| 欧美日韩国产影院| 色悠悠久久久久| 欧美成人免费一级人片100| 一区二区三区黄色| 久久精品色欧美aⅴ一区二区| 久久久精品在线| 国产精品一区二区三区免费视频| 亚洲欧美另类自拍| 精品国内自产拍在线观看| 国产欧亚日韩视频| 亚洲视频在线观看|