none
如何用request.form获得checkboxlist的值 RRS feed

  • 问题

  • 我用request.form["cbl"]得不到checkboxlist的值,请问该如何获得?

    <form id="form1" runat="server">
        <div>
       
            <asp:CheckBoxList ID="cbl" runat="server">
                <asp:ListItem>第一个</asp:ListItem>
                <asp:ListItem>第二个</asp:ListItem>
                <asp:ListItem>第三个</asp:ListItem>
                <asp:ListItem>第四个</asp:ListItem>
            </asp:CheckBoxList>
            <asp:Button ID="Button1" runat="server" PostBackUrl="get.aspx" Text="Button" />
       
        </div>
        </form>

    • 已移动 肖小勇Moderator 2009年11月24日 6:22 ASP.NET 相关问题 (发件人:.NET Framework 一般性问题讨论区)
    2009年11月24日 5:53

答案

  • Page1 
    --------------------------------------------------------------------------------
    <%@ Page Language="C#" AutoEventWireup="true" %>
    <script runat="server">
        public String SelectedValue
        {
            get { return this.cbl.SelectedValue; }
        }
    </script>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title></title>
    </head>
    <body>
    <form id="form1" runat="server">
        <div>
            <asp:CheckBoxList ID="cbl" runat="server">
                <asp:ListItem>第一个</asp:ListItem>
                <asp:ListItem>第二个</asp:ListItem>
                <asp:ListItem>第三个</asp:ListItem>
                <asp:ListItem>第四个</asp:ListItem>
            </asp:CheckBoxList>
            <asp:Button ID="Button1" runat="server" PostBackUrl="get.aspx" Text="Button" />
        </div>
        </form>
    </body>
    </html>

    Page 2
    --------------------------------------------------------------------------------
    <%@ Page Language="C#" AutoEventWireup="true"%>
    <%@ PreviousPageType VirtualPath="~/Default.aspx" %>
    <script runat="server">
        protected void Page_Load(object sender, EventArgs e)
        {
            Response.Write(PreviousPage.SelectedValue);
        }    
    </script>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title></title>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
        
        </div>
        </form>
    </body>
    </html>

    Page 2 注意需要加上标记

    <%@ PreviousPageType VirtualPath="~/Default.aspx" %>



    知识改变命运,奋斗成就人生!
    • 已标记为答案 ogra 2009年11月24日 7:10
    2009年11月24日 6:21
    版主

全部回复

  • Page1 
    --------------------------------------------------------------------------------
    <%@ Page Language="C#" AutoEventWireup="true" %>
    <script runat="server">
        public String SelectedValue
        {
            get { return this.cbl.SelectedValue; }
        }
    </script>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title></title>
    </head>
    <body>
    <form id="form1" runat="server">
        <div>
            <asp:CheckBoxList ID="cbl" runat="server">
                <asp:ListItem>第一个</asp:ListItem>
                <asp:ListItem>第二个</asp:ListItem>
                <asp:ListItem>第三个</asp:ListItem>
                <asp:ListItem>第四个</asp:ListItem>
            </asp:CheckBoxList>
            <asp:Button ID="Button1" runat="server" PostBackUrl="get.aspx" Text="Button" />
        </div>
        </form>
    </body>
    </html>

    Page 2
    --------------------------------------------------------------------------------
    <%@ Page Language="C#" AutoEventWireup="true"%>
    <%@ PreviousPageType VirtualPath="~/Default.aspx" %>
    <script runat="server">
        protected void Page_Load(object sender, EventArgs e)
        {
            Response.Write(PreviousPage.SelectedValue);
        }    
    </script>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title></title>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
        
        </div>
        </form>
    </body>
    </html>

    Page 2 注意需要加上标记

    <%@ PreviousPageType VirtualPath="~/Default.aspx" %>



    知识改变命运,奋斗成就人生!
    • 已标记为答案 ogra 2009年11月24日 7:10
    2009年11月24日 6:21
    版主
  • 谢谢,这种方法确实可以,但如果checkboxlist是动态生成的,那怎么取值呢?

     CheckBoxList cbl = new CheckBoxList();
                cbl.Items.Add(new ListItem("第一个"));
                cbl.Items.Add(new ListItem("第二个"));
                cbl.Items.Add(new ListItem("第三个"));
                cbl.Items.Add(new ListItem("第四个"));
                cbl.ID = "cbl";
      form1.Controls.Add(cbl);
    2009年11月24日 6:33
  • 你好!

    可以为 CheckBoxList 定义一个名称,用 FindControl 获取嘛。另外把 cbl  定义为局部变量也行嘛。

    知识改变命运,奋斗成就人生!
    2009年11月24日 6:38
    版主
  • 你好!

    可以为 CheckBoxList 定义一个名称,用 FindControl 获取嘛。另外把 cbl  定义为局部变量也行嘛。

    知识改变命运,奋斗成就人生!

    问题是,不一定只生成一个checkboxlist,可能生成多个。
    2009年11月24日 6:54
  • 一个与多个原理都是一样的。

    你可以定义一个集合,包含你所有自动创建的 CheckBoxList 控件,通过这个变量来获取相关的属性。

    知识改变命运,奋斗成就人生!
    2009年11月24日 7:00
    版主