在ASP Repeater中获取选中的复选框 [英] Get Selected Checkboxes in ASP Repeater

查看:59
本文介绍了在ASP Repeater中获取选中的复选框的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述



这是我的asp页面

Hi,
thhis is my asp page

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
        <asp:Repeater ID="Repeater1" runat="server" >
            <ItemTemplate>
                <div>
                    <asp:CheckBox ID="CategoryID" runat="server" Text='<%# Eval("val") %>' />
                </div>
            </ItemTemplate>
        </asp:Repeater>
        <asp:Button Text="Click" OnClick="Button2_Click" runat="server" />
    </form>
</body>
</html>




using System;
using System.Data;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        DataTable dt = new DataTable();
        dt.Columns.Add("val", typeof(string));
        for (int i = 0; i < 10; i++)
            dt.Rows.Add("testing" + i.ToString());
        Repeater1.DataSource = dt;
        Repeater1.DataBind();
    }
    protected void Button2_Click(object sender, EventArgs e)
    {
        string Rpt = "Repeater Items Checked:<br />";
        for (int i = 0; i < Repeater1.Items.Count; i++)
        {
            CheckBox chk = (CheckBox)Repeater1.Items[i].FindControl("CategoryID");
            if (chk.Checked)
            {
                Rpt += (chk.Text + "<br />");
            }
        }
        Response.Write(Rpt);
    }
}





i想要获取所选复选框的值,但它不起作用! !!!!!



i want to get the value of selected check boxes, but it doesn't work!!!!!!

推荐答案

我假设你是初学者

当你按下点击按钮它会触发回发事件并调用Page_Load事件,重新绑定转发器并调用Button2_Click因此没有选中任何项目使用页面加载方法中的以下内容。



I assume you are a beginner
when you press click button it fires postback event and call Page_Load event, which rebind the repeater and calls Button2_Click therefore no items is checked use the following in page load method.

if (!IsPostBack)
       {
           DataTable dt = new DataTable();
           dt.Columns.Add("val", typeof(string));
           for (int i = 0; i < 10; i++)
               dt.Rows.Add("testing" + i.ToString());
           Repeater1.DataSource = dt;
           Repeater1.DataBind();
       }


这篇关于在ASP Repeater中获取选中的复选框的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆