asp.net(vb)如何取checkbox的值

asp.net(vb)如何取checkbox的值,第1张

你好:)不建议这样做,因为你这样直接把客户端的代码写到里边去,服务端根本无法读取了,我建议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获取复选框的值及对其判断等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9549355.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存