关于CheckBoxList和RadioButtonList的几个问题
先看看DataList控件,它的使用最郁闷的是不能在IDE环境里绑定数据,而只能用模板(不知道是不是我没学会)。
RepeatDirection="Horizontal" ForeColor="Black" BorderColor="#999999" BorderStyle="Solid" BackColor="Silver"
CellPadding="1" GridLines="Vertical" BorderWidth="1px" RepeatColumns="4" DataKeyField="c_id">
<SelectedItemStyle Font-Bold="True" ForeColor="White" BackColor="#000099"></SelectedItemStyle>
<AlternatingItemStyle BackColor="#CCCCCC"></AlternatingItemStyle>
<ItemTemplate>
<asp:CheckBox Runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.c_loginName")%>'>
</asp:CheckBox>
</ItemTemplate>
数据绑定:
this.DataList1.DataKeyField = "c_id";
this.DataList1.DataBind();
看上去和DataGrid一样不是吗?可问题是:这里我这里使用了CheckBox,也就是说用户到时候要选择其中的部份数据,然后提交回来,结果是:你很难得在DataGrid里取回绑定的数据列。。。。。
再看RadioButtonList:
CssClass="s_verdana">
<asp:ListItem Value="0" Selected="True">All</asp:ListItem>
<asp:ListItem Value="1">All Client</asp:ListItem>
<asp:ListItem Value="2">All Users</asp:ListItem>
<asp:ListItem Value="3">Sperical</asp:ListItem>
</asp:RadioButtonList>
这里我只使用了静态的数据,因为这里并没有很多的数据显示。但有一点小问题:我想在上面加一个JavaScript事件,用来响应用户操作,于是我在后台添加代码:
{
RadioButtonList m_obj = sender as RadioButtonList;
m_obj.Attributes.Add("onclick","alert()");
}
让我郁闷不以的是:::它并没有在radio添加Onclick事件,查看HTML源代码,差点没把我气死:原来它生成了一个Table,而这个RadioButtonList就是这个Table,而里面的Radio就是行与列了。
<tr>
<td><input id="Inc_Admin_MsgManager1_Inc_WAVE_Messages1_RadioButtonList_MsgType_0" type="radio" name="Inc_Admin_MsgManager1:Inc_WAVE_Messages1:RadioButtonList_MsgType" value="0" /><label for="Inc_Admin_MsgManager1_Inc_WAVE_Messages1_RadioButtonList_MsgType_0">All</label></td><td><input id="Inc_Admin_MsgManager1_Inc_WAVE_Messages1_RadioButtonList_MsgType_1" type="radio" name="Inc_Admin_MsgManager1:Inc_WAVE_Messages1:RadioButtonList_MsgType" value="1" /><label for="Inc_Admin_MsgManager1_Inc_WAVE_Messages1_RadioButtonList_MsgType_1">All Client</label></td><td><input id="Inc_Admin_MsgManager1_Inc_WAVE_Messages1_RadioButtonList_MsgType_2" type="radio" name="Inc_Admin_MsgManager1:Inc_WAVE_Messages1:RadioButtonList_MsgType" value="2" /><label for="Inc_Admin_MsgManager1_Inc_WAVE_Messages1_RadioButtonList_MsgType_2">All Users</label></td><td><input id="Inc_Admin_MsgManager1_Inc_WAVE_Messages1_RadioButtonList_MsgType_3" type="radio" name="Inc_Admin_MsgManager1:Inc_WAVE_Messages1:RadioButtonList_MsgType" value="3" checked="checked" /><label for="Inc_Admin_MsgManager1_Inc_WAVE_Messages1_RadioButtonList_MsgType_3">Sperical</label></td>
</tr>
</table>
这也算了,如果非要这样用也行,可以在它的子控件里再添加事件,这样可是麻烦多了。看看CheckBoxList,原理也一样,也就不多说了。
回到DataList上来,看它如果用CheckBox来取回数据吧,先把所有的子控件都列出来:
{
if(this.RadioButtonList_MsgType.SelectedIndex<3) return;
CheckBox m_checkBox;
for(int i=0;i<this.DataList1.Items.Count;i++)
{
// m_checkBox = this.DataList1.Items[i].Controls[0] as CheckBox;
// if(m_checkBox.Checked)
// {
// Response.Write(m_checkBox.Text);
// }
Response.Write("i="+i.ToString()+":"+this.DataList1.Items[i].ToString()+"<br/>");
for(int j=0;j<this.DataList1.Items[i].Controls.Count;j++)
{
Response.Write("j="+j.ToString()+":"+ this.DataList1.Items[i].Controls[j].ToString()+"<br/>");
}
Response.Write("<br>==================================<br>");
}
}
看看结果:
好了,清楚是怎么回事了就好办了。以下代码取得用户选定CheckBox的ID值。
{
if(this.RadioButtonList_MsgType.SelectedIndex<3) return;
CheckBox m_checkBox;
for(int i=0;i<this.DataList1.Items.Count;i++)
{
m_checkBox = this.DataList1.Items[i].Controls[1] as CheckBox;
if(m_checkBox.Checked)
{
Response.Write(this.DataList1.DataKeys[i].ToString()+":"+m_checkBox.Text+"<br>");
}
// Response.Write("i="+i.ToString()+":"+this.DataList1.Items[i].ToString()+"<br/>");
// for(int j=0;j<this.DataList1.Items[i].Controls.Count;j++)
// {
// Response.Write("j="+j.ToString()+":"+ this.DataList1.Items[i].Controls[j].ToString()+"<br/>");
// }
// Response.Write("<br>==================================<br>");
}
}
转载于:https://www.cnblogs.com/WuCountry/archive/2006/02/09/327746.html
关于CheckBoxList和RadioButtonList的几个问题相关推荐
- form表单的reset
form表单的reset 重置表单(把表单的所有输入元素重置为它们的默认值.): 1.使用reset按钮,条件reset按钮必须在form表单内部. 2. <input id="But ...
- Asp.net之数组应用
string[] abc=new string[8]{"1","2","3","4","1",&qu ...
- Asp.net 随记 Part1 (1- 30)
日期:2008年11月25日 30.Rule: 1. 如果A,B都有值,优先取A 2. 如果A有值,B没值,取A 3. 如果A没值,B有值,取B 4. ...
- 经典博文--各系列文章
稳扎稳打Silverlight Silverlight 1.0 稳扎稳打Silverlight(1) - 1.0实例之电子表 稳扎稳打Silverlight(2) - 1.0实例之支持录音和回放的钢琴 ...
- ASP.NET 4 和 Visual Studio 2010 Web 开发概述
声明:本文是ASP.NET 白皮书 ASP.NET 4 and Visual Studio 2010 Web Development Overview 的阅读摘要,只是本人的学习记录,并非完整翻译,仅 ...
- 汉字转拼音缩写的函数以及其他函数
/**//// <summary> /// 清空指定页面上所有的控件内容,包括TextBox,CheckBox,CheckBoxList,RadioButton,Radio ...
- ASP.NET 4新增功能(三) 对Web标准的支持和辅助功能的增强
ASP.NET 控件的早期版本有时会呈现不符合 HTML.XHTML 或辅助功能标准的标记.ASP.NET 4 消除了其中大部分异常情况. 1.用于可禁用控件的 CSS 在 ASP.NET 3.5 中 ...
- Web控件文本框Reset的功能
在前一篇中<怎样实现Web控件文本框Reset的功能>http://www.cnblogs.com/insus/p/4120889.html Insus.NET只实现了文本框的功能.单个或 ...
- 分页解决方案 —— GridView + QuickPager + QuickPager_SQL + DataAccessLibrary + 数据库
这里要说的不仅仅是一个分页控件,而是一套解决方案,包括如何显示数据.显示分页导航,如何得到分页用的sql语句(等效于存储过程),如何提取数据,如何绑定控件,如何响应事件,添加.修改.删除数据后如何更新 ...
最新文章
- XML(eXtensible Markup Language)文件的解析
- 【 MATLAB 】cat 函数介绍(沿指定维度串联数组)
- 服务器主板开机无显维修,电脑主板开机无显示的维修方法-1
- iphone同步助手_教你如何用爱思助手给你的苹果手机设置自己喜欢的铃声
- C++教程之lambda表达式一
- c gui qt 4编程第二版_面试官问Linux下如何编译C程序,如何回答?为你编译演示
- procreate 笔刷_Procreate新手漫画入门:笔刷,图层,上色
- dedecms织梦(一)
- 从被动到主动,换个角度看 DB
- Redis bind用法
- 干货分享:MySQL之化险为夷的【钻石】抢购风暴【转载】
- 【奇淫技巧】Lyndon 分治
- 如何使用 Mac 的通知中心?
- 欧美经典歌曲100首(51-100…
- WIN8 RP版频繁死机
- 2022年四川省大学生金融科技建模大赛-模型复现和点评
- Redis入门完整教程:CacheCloud接入应用
- 图及其应用实验报告 c语言,图的应用 实验报告
- python图像识别教程pdf_如何使用Python进行PDF图片识别OCR
- 右键没有新建文本文件了.解决方法.