在服务器端得到CheckBoxList控件最后选择项的方法!

转载 2007年09月24日 12:46:00

探讨这个问题的起因是CSDN论坛的一个帖子:

http://community.csdn.net/Expert/TopicView.asp?id=5460832

 查看客户端生成的HTML代码可以看出,每次点击都执行一次__doPostBack,并且将选择项的参数传递到隐藏表单域之中。 当然,通过脚本和自己的隐藏域可以很轻松得到选择项,但完全在服务器端,也可以得到。

<form name="MengXianhui" method="post" action="a.aspx?ddfg" id="MengXianhui">
<input type="hidden" name="__EVENTTARGET" value="" />
<input type="hidden" name="__EVENTARGUMENT" value="" />
<input type="hidden" name="__VIEWSTATE" value="dDw0NjI1MDk1MzQ7O2w8Q2hlY2tCb3hMaXN0MTowO0NoZWNrQm94TGlzdDE6MTtDaGVja0JveExpc3QxOjI7Q2hlY2tCb3hMaXN0 MTozO0NoZWNrQm94TGlzdDE6NDtDaGVja0JveExpc3QxOjQ7Pj6h9p2gvuU8iLKlA4DU0GtLAoZhCw==" />

<script language="javascript" type="text/javascript">
<!--
    
function __doPostBack(eventTarget, eventArgument) {
        
var theform;
        
if  (window.navigator.appName.toLowerCase().indexOf("microsoft")  > -1)  {
            theform 
= document.MengXianhui;
        }
        
else {
            theform 
= document.forms["MengXianhui"];
        }
        theform.__EVENTTARGET.value 
= eventTarget.split("$").join(":");
        theform.__EVENTARGUMENT.value 
= eventArgument;
        theform.submit();
    }
// -->
</script>

  
<div style="padding:20px">
    
<table id="CheckBoxList1" border="0">
    
<tr>
        
<td><input id="CheckBoxList1_0" type="checkbox" name="CheckBoxList1:0" onclick="__doPostBack('CheckBoxList1$0','') " language="javascript" /><label for="CheckBoxList1_0">a</label></td>
    
</tr><tr>
        
<td><input id="CheckBoxList1_1" type="checkbox" name="CheckBoxList1:1" onclick="__doPostBack('CheckBoxList1$1','')" language="javascript" /><label for="CheckBoxList1_1">b</label></td>
    
</tr><tr>
        
<td><input id="CheckBoxList1_2" type="checkbox" name="CheckBoxList1:2" checked="checked" onclick="__doPostBack('CheckBoxList1$2','') " language="javascript" /><label for="CheckBoxList1_2">c</label></td>
    
</tr><tr>
        
<td><input id="CheckBoxList1_3" type="checkbox" name="CheckBoxList1:3" checked="checked" onclick="__doPostBack('CheckBoxList1$3','')" language="javascript" /><label for="CheckBoxList1_3">d</label></td>
    
</tr><tr>
        
<td><input id="CheckBoxList1_4" type="checkbox" name="CheckBoxList1:4" onclick="__doPostBack('CheckBoxList1$4','') " language="javascript" /><label for="CheckBoxList1_4">e</label></td>
    
</tr>
</table>
    
</div>
   
  
</form>

在服务器端得到选择项的做法是分析事件的参数,通过提交过来的事件参数得到。代码如下:

<%@ Page Language="C#" AutoEventWireup="true" EnableViewState="false" Debug="true" % >
<!DOCTYPE html PUBLIC " -//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1- transitional.dtd">
<script runat="server">
void BoxList1_SelectedIndexChanged(object sender, System.EventArgs e)
{
//得到触发事件的选择项
string ClickedItem = Request.Form["__EVENTTARGET"];
ClickedItem 
= ClickedItem.Split(':')[1];
int index = Int32.Parse(ClickedItem );
Response.Write(CheckBoxList1.Items [index].Text);
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
  
<title>在服务器端得到CheckBoxList 最好所选择项的方法</title>
</head>
<body>
  
<form id="MengXianhui" runat="server">
  
<div style="padding:20px">
    
<asp:CheckBoxList AutoPostBack="true" ID="CheckBoxList1" runat="server"
     OnSelectedIndexChanged
="BoxList1_SelectedIndexChanged">
    
<asp:ListItem Value="1">a</asp:ListItem>
    
<asp:ListItem>b</asp:ListItem>
    
<asp:ListItem>c</asp:ListItem>
    
<asp:ListItem>d</asp:ListItem>
    
<asp:ListItem>e</asp:ListItem>
    
</asp:CheckBoxList>
    
</div>   
  
</form>
</body>
</html>
 

GridView中实现CheckBoxList选中更新数据库

Asp.Net Code: ...
  • qq285679784
  • qq285679784
  • 2016年11月28日 16:12
  • 322

限制CheckBoxList控件只能单选

限制CheckBoxList控件只能单选 开发要求,原本对CheckBoxList控件是用来让用户多选的。但现在特殊要求,这个CheckBoxList控件限制只能单选。 哈哈,看看...
  • kissdeath
  • kissdeath
  • 2014年07月09日 10:37
  • 5501

YII中checkBoxList的数据库存取

checkBoxList是YII中的复选框组,用户在增加数据时,将以数组的形式把数据提交过来。但是,对应数据库的一个字段,只能保存字符串,不能保存数组。这时,我们可以先将提交过来的数组,用PHP的im...
  • u013718071
  • u013718071
  • 2014年03月18日 14:54
  • 1308

ASP.NET 4.0引入的视图状态属性ViewStateMode与原EnableViewState的区别

介绍了ASP.NET 4.0引入的控件视图状态属性ViewStateMode与原EnableViewState的区别,并给出了测试代码。...
  • hulihui
  • hulihui
  • 2015年08月23日 16:59
  • 3411

ASP.NET服务器端控件RadioButtonList,DropDownList,CheckBoxList的取值、赋值用法

这三个控件都有一个Items集合,可以用 RepeatLayout 和 RepeatDirection 属性来控制列表的呈现形式。如果 RepeatLayout 的值为 Table,那么将在表中呈现列...
  • bnytqepwq
  • bnytqepwq
  • 2016年07月22日 11:18
  • 170

使用CheckboxList控件

//前台页面     Inherits="HealthWebSite.Admin.RoleFuncation" %> http://www.w3.org/TR/xhtml1/DTD/xhtml...
  • zunguitiancheng
  • zunguitiancheng
  • 2013年05月30日 01:04
  • 396

第二章(2)服务器端控件

摘要:本章主要讲述了几个服务器端的控件、它们的校验、取值方法等,从中我们可以看到asp.net中各种控件功能是非常强大的,如上面的例子所示,我们甚至可以用一个简单的语句就可以验证输入的合法性。对取值,...
  • aspnet321
  • aspnet321
  • 2014年05月07日 00:33
  • 621

理解mnist识别特征(lenet)

继上一篇做完lenet手写数字测试后,我们对lenet训练结果在mnist测试集上的结果进行粗浅的分析。lenet测试结构如下,我们看到ip1输出特征向量长度为500维,不便于分析, 于是我们对...
  • lhnows
  • lhnows
  • 2017年06月17日 22:59
  • 505

Java获取一年里某季、某月、某周的第一天及最后一天时间

import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; impor...
  • qq906786621
  • qq906786621
  • 2015年11月13日 10:36
  • 1819

一串奇怪的数:

http://www.shiyanbar.com/ctf/1824 一串奇怪的数: 请解密密文得到该产品的密钥(最后一组密钥即为key) 解题链接: http://ctf5.shiyanbar.com...
  • dongyanwen6036
  • dongyanwen6036
  • 2017年08月04日 20:14
  • 343
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:在服务器端得到CheckBoxList控件最后选择项的方法!
举报原因:
原因补充:

(最多只允许输入30个字)