none
两个repeater嵌套如何激活子repeater中的linkbutton 事件 RRS feed

  • 问题

  • <asp:Repeater ID="rpt_listShow" runat="server" EnableViewState="false" OnItemDataBound="rplist1_ItemDataBound">
                                            <ItemTemplate>
                                                <tr>
                                                    <td>
                                                        <input id="css" name="cbs" value='<%# Eval("CXQZID") %>' onclick="radioOne(this)"  type="radio" /></td>
                                                    <td>
                                                        <%# Eval("USERNAME")%>
                                                    </td>
                                                    <td>
                                                        <%# Eval("IDNUM")%>
                                                    </td>
                                                    <td>
                                                        <%# Eval("JOBCERTIFICATE")%>
                                                    </td>
                                                    <td>
                                                        <%# Eval("JOBCODE")%>
                                                    </td>
                                                    <td>
                                                        <%# Eval("TALLY")%>
                                                    </td>
                                                </tr>
                                                <tr  id="<%# Eval("CXQZID") %>"><%--style="display:none"--%>
                                                    <td></td>
                                                    <td colspan="5">
                                                        <table>
                                                             <tr><td>处罚项目</td><td>处罚分数</td><td>处罚人员</td><td>处罚地点</td><td>处罚时间</td><td>操作</td></tr>
                                                             <asp:Repeater ID="rpt_listShow2" runat="server"  OnItemCommand="rpt2_ItemCommand">
                                                                <ItemTemplate>
                                                                    <tr><td><%# Eval("[\"ITEMSM\"]")%></td><td><%# Eval("[\"ITEMNUM\"]")%></td><td><%# Eval("[\"PHSUSER\"]")%></td><td><%# Eval("[\"PHSADDRESS\"]")%></td><td><%# Eval("[\"PHSTIME\"]")%></td><td><a href="javascript:void(0)" onclick="PunChange('<%# Eval("[\"PUNISHID\"]")%>','<%# Eval("[\"PHSUSER\"]")%>','<%# Eval("[\"PHSADDRESS\"]")%>','<%# Eval("[\"PHSTIME\"]")%>','<%# Eval("[\"ITEMCODE\"]")%>','<%# Eval("[\"CXQZID\"]")%>')">修改</a>   <asp:LinkButton id="LinkButton1"  runat="server"  CommandName="del" ToolTip='<%# Eval("[\"CXQZID\"]") %>' CommandArgument='<%# Eval("[\"PUNISHID\"]")%>'>删除111111111111111111111</asp:LinkButton></td></tr>
                                                                </ItemTemplate>
                                                             </asp:Repeater>
                                                        </table>
                                                    
                                                    </td>
                                                </tr>
                                            </ItemTemplate>
                                        </asp:Repeater>

    2012年9月24日 5:53

答案

  • 写过 没办法激活  点击不进入事件

    我貌似是可以得,参考我的代码:

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="CSharp.WebForm1" %>
    
    <!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>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
        <asp:Repeater ID="FatherRep" runat="server">
            <ItemTemplate>
                Id:<%#Eval("Id") %>
                <asp:Repeater id="SonRep" runat="server" DataSource='<%#Eval("Numbers") %>'>
                    <ItemTemplate>
                        <asp:LinkButton ID="lnkBtn" runat="server" OnClick="lnkBtn_Click" Text="Click Me" />
                    </ItemTemplate>
                </asp:Repeater>
            </ItemTemplate>
        </asp:Repeater>
        </div>
        </form>
    </body>
    </html>

     public partial class WebForm1 : System.Web.UI.Page
        {
            protected void lnkBtn_Click(object sender, EventArgs e)
            {
                Response.Write("触发事件了!");
            }
    
            protected void Page_Load(object sender, EventArgs e)
            {
                if (!IsPostBack)
                {
                    FatherRep.DataSource = new[] 
                    {
                        new
                        {
                            Id=1,
                            Numbers=new[]{1,2,3}
                        }
                    };
                    FatherRep.DataBind();
                }
            }
        }

    下载MSDN桌面工具(Vista,Win7)
    我的博客园
    慈善点击,点击此处

    2012年9月24日 6:59

全部回复

  • 手动添加事件:

    <asp:LinkButton id="LinkButton1"  runat="server"  CommandName="del" ToolTip='<%# Eval("[\"CXQZID\"]") %>' CommandArgument='<%# Eval("[\"PUNISHID\"]")%>' OnClick="LinkButton_Click"
    >删除</asp:LinkButton></td></tr>

    然后后台:

    void LinkButton_Click(Object sender, EventArgs e) 
          {
             //做你做的东西
             LinkButton btn = (LinkButton)sender;
    if(btn.CommandName=="……"){…………}
    }

    下载MSDN桌面工具(Vista,Win7)
    我的博客园
    慈善点击,点击此处

    2012年9月24日 6:00
  • 写过 没办法激活  点击不进入事件
    2012年9月24日 6:21
  • 写过 没办法激活  点击不进入事件

    我貌似是可以得,参考我的代码:

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="CSharp.WebForm1" %>
    
    <!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>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
        <asp:Repeater ID="FatherRep" runat="server">
            <ItemTemplate>
                Id:<%#Eval("Id") %>
                <asp:Repeater id="SonRep" runat="server" DataSource='<%#Eval("Numbers") %>'>
                    <ItemTemplate>
                        <asp:LinkButton ID="lnkBtn" runat="server" OnClick="lnkBtn_Click" Text="Click Me" />
                    </ItemTemplate>
                </asp:Repeater>
            </ItemTemplate>
        </asp:Repeater>
        </div>
        </form>
    </body>
    </html>

     public partial class WebForm1 : System.Web.UI.Page
        {
            protected void lnkBtn_Click(object sender, EventArgs e)
            {
                Response.Write("触发事件了!");
            }
    
            protected void Page_Load(object sender, EventArgs e)
            {
                if (!IsPostBack)
                {
                    FatherRep.DataSource = new[] 
                    {
                        new
                        {
                            Id=1,
                            Numbers=new[]{1,2,3}
                        }
                    };
                    FatherRep.DataBind();
                }
            }
        }

    下载MSDN桌面工具(Vista,Win7)
    我的博客园
    慈善点击,点击此处

    2012年9月24日 6:59
  • 
    把Page的视图状态打开试试:EnableViewState="true"
    2012年9月25日 2:32
  • 1、<asp:LinkButton 后面不能跟<%%>

    2、listview默认不支持ViewState,所以在如果在PostBack,之后如果Load或者OnInit中没有再次加入事件的注册,是无法相应

    2012年9月26日 6:20
    版主