zoukankan      html  css  js  c++  java
  • 获取CheckBoxList当前选择项索引

    今天在使用CheckBoxList控件时,突然发现该控件竟然未提供返回当前选中项的属性,比如当前选中项的索引等。它只是提供了获取或设置列表中选定项的最低序号索引,与最低序号索引对应的Text与Value,分别如下:
    SelectedIndex --获取或设置列表中选定项的最低序号索引。
    SelectedItem  --获取列表控件中索引最小的选定项。
    SelectedValue --取列表控件中选定项的值,或选择列表控件中包含指定值的项。

    现在假如我往页面上放了一个CheckBoxList控件,如下:

    <form id="form1" runat="server">
    <asp:CheckBoxList ID="CheckBoxList1" runat="server" AutoPostBack="True" onselectedindexchanged="CheckBoxList1_SelectedIndexChanged">
    <asp:ListItem Text="test1" Value="value1"></asp:ListItem >
    <asp:ListItem Text="test2" Value="value2"></asp:ListItem >
    </asp:CheckBoxList >
    </form >

    我先是选中了第一项:在CheckBoxList1_SelectedIndexChanged事件中获取以上三个属性的值,分别是:
    SelectedIndex --0。
    SelectedItem.Text  --test1。
    SelectedValue --value1。
    这个是对的。


    然后我又选中了第二项,注意,不要取消第一项的选中,然后再在CheckBoxList1_SelectedIndexChanged事件中获取以上三个属性的值,还分别是:
    SelectedIndex --0。
    SelectedItem.Text  --test1。
    SelectedValue --value1。

    这就不是我想要的结果了,其实我是想得到
    SelectedIndex --1。
    SelectedItem  --test2。
    SelectedValue --value2。

    找遍CheckBoxList中所有的属性与方法,都没能得到我想要结果。经过一翻研究,终于得到了自己想要的结果。就是利用回发过程中Request.Form["__EVENTTARGET"]中的值。我们都知道,在回发时ViewState["__EVENTTARGET"]中存储的是引发回发事件的对象的信息。在调试中,我查看了CheckBoxList的onselectedindexchanged回发事件中该Request.Form["__EVENTTARGET"]中的值是"CheckBoxList1$1",哈哈,最后面的1,不就是当前选中项的索引么。。

    改写代码如下:

    protected void CheckBoxList1_SelectedIndexChanged(object sender, EventArgs e)
    {
    string s = Request.Form["__EVENTTARGET"];
    int index = Convert.ToInt32(s.Substring(s.LastIndexOf("$") + 1));
    string selectText = this.CheckBoxList1.Items[index].Text;
    string selectValue = this.CheckBoxList1.Items[index].Value;
    }

    其中:
    index --当前选中项的索引
    selectText --当前选中项的文件
    selectValue --当前选中项的值

    以上纯属个人经验,希望能对大家有所帮助。

  • 相关阅读:
    Windows JScript 在 游览器 中运行 调试 Shell 文件系统
    autohotkey 符号链接 软连接 symbolink
    软链接 硬链接 测试
    SolidWorks 修改 基准面 标准坐标系
    手机 路径 WebDAV 映射 驱动器
    Win10上手机路径
    explorer 命令行
    单位公司 网络 封锁 屏蔽 深信 AC
    cobbler自动化部署原理篇
    Docker四种网络模式
  • 原文地址:https://www.cnblogs.com/shenyixin/p/2260582.html
Copyright © 2011-2022 走看看