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

翻译|其它|编辑:郝浩|2007-09-25 10:43:16.000|阅读 1096 次

概述:

# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>

查看客户端生成的  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>


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@evget.com

文章转载自:csdn

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP