在ASP:直放站,我用asp:复选框,但OnCheckedChanged不火 [英] In a asp:repeater,I use asp:checkbox,but the OnCheckedChanged doesn't fire

查看:93
本文介绍了在ASP:直放站,我用asp:复选框,但OnCheckedChanged不火的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

下面是code:

<asp:Repeater runat="server" ID="repeater1" OnItemCommand="checkChange">
    <ItemTemplate>
            <asp:Table runat="server" Width="80%">
            <asp:TableRow runat="server" HorizontalAlign="Center" Width="80%">
                <asp:TableCell Width="80%" HorizontalAlign="Left">
                    <asp:Button ID="Button1" runat="server" Text="删除" Visible="<%#administrator %>" />
                    <asp:CheckBox runat="server" ID="checkBox" Text='<%#DataBinder.Eval(Container.DataItem,"IID")%>' AutoPostBack="true" OnCheckedChanged="checkChange" EnableViewState="false"/>
                    <asp:Label runat="server" Text='<%#DataBinder.Eval(Container.DataItem,"invText") %>'></asp:Label>
                </asp:TableCell>
            </asp:TableRow>
            </asp:Table>
    </ItemTemplate>
    </asp:Repeater>

和作用是:

 protected void checkChange(object sender, EventArgs e)
    {
        Response.Write("it works well!");
    }

但是当我点击复选框,没有发生......谢谢你......

but when I click the checkbox,nothing happen...Thank you ...

推荐答案

由于您提供了一个事件处理程序来两个复选框转发

Because you have provided single event handler to both the CheckBox and the Repeater.

不过,当然,因为这两个 OnItemCommand OnCheckedChanged 事件具有相同的委托签名即无效目标(对象发件人,EventArgs五),所以它不会提出任何类型的错误。

But of course because both OnItemCommand and OnCheckedChanged events has same delegate signatures i.e void target(object sender, EventArgs e) so it won't raise any kind of error.

code做工精细是这样的:

<asp:Repeater runat="server" ID="repeater1">
            <ItemTemplate>
                <asp:Table ID="Table1" runat="server" Width="80%">
                    <asp:TableRow ID="TableRow1" runat="server" HorizontalAlign="Center" Width="80%">
                        <asp:TableCell Width="80%" HorizontalAlign="Left">
                            <asp:Button ID="Button1" runat="server" Text="Button" />
                            <asp:CheckBox runat="server" ID="checkBox" Text="Click me if u dare." AutoPostBack="true"
                                OnCheckedChanged="checkChange" EnableViewState="false" />
                            <asp:Label ID="Label1" runat="server" Text='<%# Eval("Name") %>'></asp:Label>
                        </asp:TableCell>
                    </asp:TableRow>
                </asp:Table>
            </ItemTemplate>
        </asp:Repeater>

后端

protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            DataTable dt = new DataTable();
            dt.Columns.Add("Name");
            for (int i = 0; i < 5; i++)
                dt.Rows.Add(new object[] { "Name no.: " + i.ToString() });
            repeater1.DataSource = dt;
            repeater1.DataBind();
        }
    }

    protected void checkChange(object sender, EventArgs e)
    {
        Response.Write("Clicked called at :" + DateTime.Now.ToString("dd-MM-yy hh:mm:ss"));
    }

这篇关于在ASP:直放站,我用asp:复选框,但OnCheckedChanged不火的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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