<%@ Page EnableEventValidation="true" %> asp:DataList OnItemCommand=

浅谈Repeater及DataList内的Button控件事件
有时我们会要在Repeater及DataList内部加一二个按纽,可如果我们也按照平常那样双击按纽的话,出现的不是类似这种

    protected void Button1_Click(object sender,EventArgs e)
    {

 

    }

如果你是第一次碰到这种情况是不是就不知道怎样写代码了呢?其实像下面代码的功能与上面一样,也是写OnClick事件。


    protected void Repeater1_ItemCommand(object source, RepeaterCommandEventArgs e)
    {
      

    }


这只是简单的解决一个数据控件内一个按纽的情况,可如果里面有几个不同的按纽,我们又应该如何去实现它们不同的功能 呢

?其实也是很简单的,我简单的贴一些代码出来,我想你就能明白。

 

前台.aspx:       

<asp:Repeater ID="Repeater1" runat="server" onitemcommand="Repeater1_ItemCommand">

        <ItemTemplate>


            <asp:LinkButton ID="LinkButton1" runat="server" CommandName="1">LinkButton</asp:LinkButton>

            <asp:LinkButton ID="LinkButton2" runat="server" CommandName="2">LinkButton</asp:LinkButton>


        </ItemTemplate>


        </asp:Repeater>

 

后台.cs:

    protected void Repeater1_ItemCommand(object source, RepeaterCommandEventArgs e)
    {
        if (e.CommandName == "1")
        {
            Response.Write("d");


        }

        if (e.CommandName == "2")
        {
            Response.Write("dd");
        } 


    }

 

看明白了吧?其实很简单的,简单的判断一下。如果细心的你,你一定看到,上面的代码中使用的是LinkButton而不是Button

,如果你上面的功能做出来了的话,你可以试一下,在数据控件添加Button会出现下面错误:

回发或回调参数无效。在配置中使用 <pages enableEventValidation="true"/> 或在页面中使用 <%@ Page

EnableEventValidation="true" %> 启用了事件验证。出于安全目的,此功能验证回发或回调事件的参数是否来源于最初呈现

这些事件的服务器控件。如果数据有效并且是预期的,则使用 ClientScriptManager.RegisterForEventValidation 方法来注

册回发或回调数据以进行验证。

 

在来一个简单例子

<asp:Repeater ID="Repeater1" runat="server" OnItemCommand="Repeater1_ItemCommand">
            <ItemTemplate>
                <asp:LinkButton ID="Button1" CommandName="UpImage" runat="server" CommandArgument=' <%# Eval

("id") %>' Text="Button1" />

            </ItemTemplate>
        </asp:Repeater>后台:
protected void Repeater1_ItemCommand(object source, RepeaterCommandEventArgs e)
    {
        if (e.CommandName == "UpImage")
        {
            string strindex = e.CommandArgument.ToString();//获取id
        }
           
    }
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Login.aspx.cs" Inherits="Hotel.WebForm1" EnableEventValidation="false" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title></title> <link rel="stylesheet" href="Assets/Libraries/Bootstrap/css/bootstrap.min.css" /> <style> body{ background-image:url(../Assets/Images/hotel4.jpg); background-size:cover; } .container-fluid{ opacity:0.9; } </style> </head> <body> <form id="form1" runat="server" > <div> <div class="container-fluid"> <div class="row" style="height:200px"></div> <div class="row"> <div class="col-md-4"></div> <div class="col-md-4 bg-light rounded-3"> <h1 class="text-text-success text-center">皇家理工度假酒店</h1> <form> <div class="mb-3"> <label for="UserTb" class="form-label">用户名</label> <input type="text" class="form-control" id="UserTb" runat="server" required="required"> </div> <div class="mb-3"> <label for="PasswordTb" class="form-label">密码</label> <input type="password" class="form-control" id="PasswordTb" runat="server" required="required"> </div> <div class="mb-3"> <label id="ErrMsg" class="text-danger" runat="server"></label> <input type="radio" id="AdminCb" runat="server" name="Role"><label class="text-success">管理员</label> <input type="radio" id="UserCb" runat="server" name="Role"><label class="text-success">用户</label> </div> <div class="d-grid"> <asp:Button ID="LoginBtn" runat="server" Text="登陆" class="btn btn-success btn-block" OnClick="LoginBtn_Click" /> </div> <br /> </form> </div> <div class="col-md-4"></div> </div> </div> </div> </form> </body> </html>我在form中添加了align=center属性但是删除后却依旧运行了原先配置
最新发布
05-27
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值