ASP.Net:为什么我的按钮的点击/命令事件没有在转发器中绑定/触发?
发布时间:2020-12-15 14:17:57  所属栏目:asp.Net  来源:互联网 
            导读:这是来自ascx的具有中继器的代码: asp:Repeater ID=ListOfEmails runat=server HeaderTemplateh3A sub-header:/h3/HeaderTemplate ItemTemplate [Some other stuff is here] asp:Butto
                
                
                
            | 
                         这是来自ascx的具有中继器的代码: <asp:Repeater ID="ListOfEmails" runat="server" >
    <HeaderTemplate><h3>A sub-header:</h3></HeaderTemplate>
    <ItemTemplate>
        [Some other stuff is here]
        <asp:Button ID="removeEmail" runat="server" Text="X" ToolTip="remove" />
    </ItemTemplate>
</asp:Repeater> 
 在中继器的数据绑定和事件的代码中: Protected Sub ListOfEmails_ItemDataBound(ByVal sender As Object,ByVal e As System.Web.UI.WebControls.RepeaterItemEventArgs) Handles ListOfEmails.ItemDataBound
    If (e.Item.ItemType = ListItemType.Item) Or (e.Item.ItemType = ListItemType.AlternatingItem) Then
        Dim removeEmail As Button = CType(e.Item.FindControl("removeEmail"),Button)
        removeEmail.CommandArgument = e.Item.ItemIndex.ToString()
        AddHandler removeEmail.Click,AddressOf removeEmail_Click
        AddHandler removeEmail.Command,AddressOf removeEmail_Command
    End If
End Sub
Sub removeEmail_Click(ByVal sender As Object,ByVal e As System.EventArgs)
    Response.Write("<h1>click</h1>")
End Sub
Sub removeEmail_Command(ByVal sender As Object,ByVal e As CommandEventArgs)
    Response.Write("<h1>command</h1>")
End Sub 
 点击或命令都没有被调用,我做错了什么? 解决方法嵌套在中继器内部的控件不会拦截事件.相反,您需要绑定到Repeater.ItemCommand事件.ItemCommand包含RepeaterCommandEventArgs,它有两个重要的字段: > CommandName 所以,一个微不足道的例子: void rptr_ItemDataBound(object sender,RepeaterItemEventArgs e)
        {
            if (e.Item.ItemType == ListItemType.AlternatingItem || e.Item.ItemType == ListItemType.Item)
            {
                // Stuff to databind
                Button myButton = (Button)e.Item.FindControl("myButton");
                myButton.CommandName = "Add";
                myButton.CommandArgument = "Some Identifying Argument";
            }
        }
void rptr_ItemCommand(object source,RepeaterCommandEventArgs e)
        {
            if (e.CommandName == "Add")
            {
                // Do your event
            }
        } 
 编辑:Markdown完全希望我的缩进,哦,我应该停止在这个文本框中编写代码. (编辑:莱芜站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!  | 
                  
相关内容
- asp.net-mvc – 为什么ASP.NET MVC 4与IList for editor不能
 - asp.net-mvc – 使用复杂类型嵌套对象的bind属性include和e
 - ASP.NET MVC是否使Web表单成为旧版平台?
 - asp.net-mvc – 在asp.net mvc中启动一组未选中的radiobutt
 - ASP.NET(C#)应用程序配置文件app.config/web.config的增、删
 - VS 2013 RC中缺少ASP.NET Web窗体脚手架功能
 - asp.net – 如何访问Global.asax静态成员?
 - asp.net-mvc – ASP.NET MVC 3 Treeview
 - asp.net-mvc – ASP.Net MVC中的自我AJAX更新部分视图/控制
 - asp.net-mvc – 是否可以为post和get提供重复的动作名称和参
 
