从转发器中选择整个项目

时间:2014-07-08 11:17:35

标签: c# asp.net

我有一个带有一组项目的转发器,我可以通过单击绑定到每个项目的按钮来选择。这一切都很好,但我想知道是否可以通过点击行中的任何位置来选择有问题的项目?

我想如果有可能,它会涉及将事件绑定到转发器的ItemDataBound事件上的一行。

是否可以添加一个属性来调用方法后面的行代码?如果是这样,我将不得不使用javascript吗?

还是有更好的方法来解决这个问题吗?

无论如何,这是我现在的转发器:

<asp:Repeater ID="repLists" runat="server" onitemdatabound="repLists_ItemDataBound">
    <HeaderTemplate>  
        <div class="repeaterScroller" style="width: 50%">                                                                                                                                                            
            <table style="font-size:12px;" width="100%" cellpadding="5px" border="1px">                                        
                <tr class="header">
                    <td style="background-color:#f5f5f5; visibility:hidden;">
                    </td>
                    <td>
                        List
                    </td>
                    <td>
                        Description
                    </td>
                    <td>
                        Rows
                    </td>
                    <td>
                        Columns
                    </td>
                    <td>
                        Pages
                    </td>
                    <td>
                        Staydown
                    </td>
                    <td>
                        Link
                    </td>
                    <td>
                        Min
                    </td>
                    <td>
                        Max
                    </td>                                 
                </tr>                                                                                                                         
    </HeaderTemplate>
    <ItemTemplate>                                              
                <tr>
                    <td style="text-align: center; visibility:hidden;">
                        <asp:LinkButton ID="lnkButtonEdit" runat="server" OnCommand="lnkButtonEdit_Command" CommandArgument='<%# Eval("RowNumber")%>' CommandName="Edit"></asp:LinkButton>
                    </td>   
                    <td>
                        <%#((DataRowView)Container.DataItem)["ListNo"]%>
                    </td>
                    <td>
                        <%#((DataRowView)Container.DataItem)["Description"]%>
                    </td>
                    <td>
                        <%#((DataRowView)Container.DataItem)["Rows"]%>
                    </td>
                    <td>
                        <%#((DataRowView)Container.DataItem)["Cols"]%>
                    </td>
                    <td>
                        <%#((DataRowView)Container.DataItem)["NPages"]%>
                    </td>
                    <td>
                        <%#((DataRowView)Container.DataItem)["Staydown"]%>
                    </td>
                    <td>
                        <%#((DataRowView)Container.DataItem)["Link"]%>
                    </td>
                    <td>
                        <%#((DataRowView)Container.DataItem)["SelMin"]%>
                    </td>
                    <td>
                        <%#((DataRowView)Container.DataItem)["SelMax"]%>
                    </td>                                   
                </tr>
    </ItemTemplate>
    <AlternatingItemTemplate>
                <tr bgcolor="#e8e8e8">
                    <td style="text-align: center; visibility:hidden;">
                        <asp:LinkButton ID="lnkButtonEdit" runat="server" OnCommand="lnkButtonEdit_Command" CommandArgument='<%# Eval("RowNumber")%>' CommandName="Edit"></asp:LinkButton>
                    </td>
                    <td>
                        <%#((DataRowView)Container.DataItem)["ListNo"]%>
                    </td>
                    <td>
                        <%#((DataRowView)Container.DataItem)["Description"]%>
                    </td>
                    <td>
                        <%#((DataRowView)Container.DataItem)["Rows"]%>
                    </td>
                    <td>
                        <%#((DataRowView)Container.DataItem)["Cols"]%>
                    </td>
                    <td>
                        <%#((DataRowView)Container.DataItem)["NPages"]%>
                    </td>
                    <td>
                        <%#((DataRowView)Container.DataItem)["Staydown"]%>
                    </td>
                    <td>
                        <%#((DataRowView)Container.DataItem)["Link"]%>
                    </td>
                    <td>
                        <%#((DataRowView)Container.DataItem)["SelMin"]%>
                    </td>
                    <td>
                        <%#((DataRowView)Container.DataItem)["SelMax"]%>
                    </td>                                   
                </tr>
    </AlternatingItemTemplate>
    <FooterTemplate>
            </table>
        </div>
    </FooterTemplate>
</asp:Repeater>

点击项目我要点击的当前点击事件:

    protected void lnkButtonEdit_Command(object sender, CommandEventArgs e)
    {
        switch (e.CommandName)
        {
            case "Edit":
                break;
        }
    }

http://forums.asp.net/t/1580368.aspx?Firing+postback+from+Repeater+row+click+是一个相关的问题,我在那里试用了这个方法,但任何建议或其他想法都会受到赞赏。

非常感谢。

1 个答案:

答案 0 :(得分:1)

也许你可以尝试使用javascript / jquery ..你可以简单地触发点击事件上的按钮点击事件。像

$('.repeaterScroller tr').click(function(){
  $(this).find('input[type="button"]').click();
});

只需占用每一行,找到其中的按钮,然后点击行触发按钮事件。类似的东西