你好:)不建议这样做,因为你这样直接把客户端的代码写到里边去,服务端根本无法读取了,我建议3 个办法——(任选其一) 1)如果某(几)列是CheckBox,建议你直接使用CheckBoxField进行绑定SQL数据库bit类型的字段,获取的时候直接:(eRowCells(n)Controls(0) as CheckBox)Checked 2)或者把该列转换成一个TemplateField模板形式,然后:(CType(eRowFindControl("CheckBoxId'),CheckBox))Checked 3)如果你真要动态添加,那么:eRowCells(n)ControlsClear();Dim chkbox As New CheckBox();chkboxId = "textRecordId" & eRowRowIndex()ToString() //防止产生重复IdchkboxText = "你喜欢的东东……";eRowCells(n)ControlsAdd(chkbox);
测试了一下,可以实现的。你的错误应该是,绑定事件没有放在!IspostBack里面,这样按钮点击后,在Page_load又会重新绑定,当然会把你之前选择的清空掉。
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
SectionDataListDataSource = BLLpersonnelEmployeesBLLGetAllList();
SectionDataListDataBind();
}
}
protected void Button1_Click(object sender, EventArgs e)
{
foreach (DataListItem item in SectionDataListItems)
{
CheckBox checkbox = (CheckBox)itemFindControl("cbSection");
if (checkboxChecked == true)
{
ResponseWrite("aaa");
}
}
}
复选框传递值得形式是,如果你选择了A B D 那么传递的值是对应的选项的value的值,形式是a,b,d在每个值之间插入","形成的字符串。你需要把这些值分离开来,可以这样写
首先你要把每个复选框的name改为一样的如都为:checkbox
set a
a=split(requestform(checkbox),",")//把提交的复选框的值以","分开
那么a[0],a[1]一直到a[Ubound(a)]就是你选择的对应的复选框的值,Ubound(a)是数组a的最大下标,就是长度。
那么你上面的3asp可以这样写
<body>
<form id="form1" name="form1" method="post" action="3ASP">
<p>第三题input标签可以建立那些元素(多选,有一个没有选对以错来判断)</p>
<p>A
<input type="checkbox" name="checkbox" value="a" />
建立文本框<br>
B
<input type="checkbox" name="checkbox" value="b" />
文本区域<br>
C
<input type="checkbox" name="checkbox" value="c" />
单选按钮<br>
D
<input type="checkbox" name="checkbox" value="d" />
一个按钮<br>
E
<input type="checkbox" name="checkbox" value="e" />
多选按钮<br>
F
<input type="checkbox" name="checkbox" value="f" />
列表、菜单 </p>
<p>请选择正确答案</p>
<p>
<input type="submit" name="da" value="提交" />
<br>
<br>
</p>
</p>
</form>
</body>
3asp的代码可以这样写:
<%
if requestform("checkbox")="" then
responsewrite"<SCRIPT language=JavaScript>alert('请选择题目!');historygo(-1)</SCRIPT>"
else
a=split(requestform("checkbox"),", ")
if Ubound(a)<>3 then
responsewrite"<SCRIPT language=JavaScript>alert('选择错误!');historygo(-1)</SCRIPT>"
else
if a[0]<>"a" or a[1]<>"c" or a[2]<>"d" or a[3]<>"e" then
responsewrite"<SCRIPT language=JavaScript>alert('选择错误!');historygo(-1)</SCRIPT>"
else
responsewrite"<SCRIPT language=JavaScript>alert('选择正确!');historygo(-1)</SCRIPT>"
end if
end if
end if
%>
这个很简单的,我告诉你:
foreach (RepeaterItem RPItem in thisRepeNewsItems)
{
CheckBox Check = (CheckBox)RPItemFindControl("repeater 中循环的checkbox的ID");
if (!CheckChecked)
{
//处理CheckBox
ChBText
}
}
当名称相同时,提交后获取该表单名可直接获取到一个数组,用“,”分隔
如:
<input name=checkbox type=checkbox value="1">
<input name=checkbox type=checkbox value="2">
复选以上两项,在提交后
requestform("checkbox")
的值为"1,2"
注意,多选时,必须名称相同才可获得数组,并且只获取已选中的值,无法获取未选中的值。
你是要单选吧,可以用radio。改为:
前台:(<asp:CheckBox ID="CheckBox1" runat="server" />这句)
<asp:TemplateField>
<ItemTemplate>
<asp:Literal ID="RadioButtonMarkup" runat="server"></asp:Literal> //修改的地方
</ItemTemplate>
</asp:TemplateField>
后台:
protected void GridView1_RowCreated(object sender, GridViewRowEventArgs e)
{
if (eRowRowType == DataControlRowTypeDataRow)
{
// Grab a reference to the Literal control
Literal output = (Literal)eRowFindControl("RadioButtonMarkup");
// Output the markup except for the "checked" attribute
outputText = stringFormat(
@"<input type='radio' name='SelectGroup' " + @"id='RowSelector{0}' value='{0}' />", eRowRowIndex);
// See if we need to add the "checked" attribute
if (SelectGroupSelectedIndex == eRowRowIndex)
{
outputText += @" checked='checked' />";
}
}
}
private int SelectGroupSelectedIndex
{
get
{
if (stringIsNullOrEmpty(RequestForm["SelectGroup"]))
return -1;
else
return ConvertToInt32(RequestForm["SelectGroup"]);
}
}
protected void Button1_Click()
{
int s = SelectGroupSelectedIndex;
if (s == -1)
{
ScriptManagerRegisterStartupScript(this, thisGetType(), "", "<script type='text/javascript'>alert('未选');", false);
return;
}
else
{
}
}
javascript:
function isSelect() {
var ss = documentgetElementsByName('SelectGroup');
for (var i = 0; i < sslength; i++) {
if (ss[i]checked) {
return true;
}
}
alert('提示:\n\n您还没有选择');
return false;
}
我有一种方法,但是不知道是不是解决了你的问题,
在dw中,建立两个页面formasp和xianshiasp
接下来在formasp这个页面插入一个表单form1,选择action为xiangxiasp
在表单form1里插入几个复选框,举个例子,只插入两个复选框,name分别为“cb1”和"cb2",具体代码如下:
<form name="form1" method="post" action="xianshiasp">
<input name="cb1" type="checkbox" id="cb1" value="个人">
个人<input name="cb2" type="checkbox" id="cb2" value="企业">
企业<input type="submit" name="button" id="button" value="提交">
</form>
在xianshiasp中使用
<%= ResponseWrite(requestform("cb1")) %>
<%= ResponseWrite(requestform("cb2")) %>
这样,在你从form1asp中选择复选框并点击提交后,就会在xianshiasp中显示出来了。
注明,不要看到代码,就头痛,这些代码是你用DW *** 作的时候自己生成的,为了学好,最好要熟悉一下这些代码,这样会对你有很多帮助的
以上就是关于asp.net(vb)如何取checkbox的值全部的内容,包括:asp.net(vb)如何取checkbox的值、asp.net在后台获取选中checkbox的值、asp获取复选框的值及对其判断等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)