如何为我的中继器制作通用页脚?

时间:2011-03-01 08:50:35

标签: asp.net custom-controls repeater

我假设这个问题可能看起来非常愚蠢..但我在我的asp应用程序中有多个中继器我想知道我怎么能像页脚一样制作一些常见的东西..

我如何为我的转发器创建活动?像提升自定义事件的页脚中的按钮一样?感谢您的回复..

2 个答案:

答案 0 :(得分:1)

您可以创建UserControl并将其放在页脚中。

对于活动,您需要将页脚连接到ItemCommand handler

<asp:repeater runat='server' id='myRepeater' onItemCommand='rptMyRepeater_ItemCommand'>
    <ItemTemplate>
        <!-- markup and controls -->
    </ItemTemplate>
    <footerTemplate>
        <asp:Button runat='server' id='btnOrf' Text='Click Me' CommandName='SomeAction' CommandArgument='100' />
    </FooterTemplate>
</asp:repeater>

然后在代码隐藏中定义一个处理转发器ItemCommand事件的方法。您需要检查ItemCommandEventArgs参数,以获取引发事件的按钮/控件的详细信息:

protected void rptMyRepeater_ItemCommand(object source, RepeaterCommandEventArgs e){
    if (e.CommandName == "SomeAction"){
        Response.Write ("The Command was " + e.CommandName + " and the value of the CommandArgument is: " + e.CommandArgument);

    }
}

您可以拥有任意数量的按钮以及不同的CommandnameCommandArgument个按钮,例如'添加','保存','删除','更新'等。

通常将数据项目的数据库ID(用户/产品/等)绑定到CommandArgument,以便您知道如何识别正在编辑/保存/删除的对象/等等。

<asp:Button runat='server' id='saveBtn' commandName='delete' CommandArgument='<%# Eval("UserId")%>' Text='Save' />

此处的完整示例:http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.repeater.itemcommand.aspx

MSDN应始终是您的第一个参考点; - )

答案 1 :(得分:0)

  1. 我认为你需要创建一个TABLE 头部帮助下的结构, ItemTemplate和页脚模板

    <HeaderTemplate>
        <table>
            <Tr>
                <Td>Header</Td>
            </Tr>
    </HeaderTemplate>
    <ItemTemplate>
        <Tr>
            <Td>Header</Td>
        </Tr>
    </ItemTemplate>
    <FooterTemplate>
            <Tr>
                <Td>Header</Td>
            </Tr>
        </Table>
    </FooterTemplate>
    
  2. 您需要在页脚中找到控件并分配事件。像这样:

    void Repeater_OnItemDataBound(object source, DataGridItemEventArgs e)
    {
        if (e.Item.ItemType == ListItemType.Footer)
        {
            Button SelectAll = (Button)e.Item.FindControl("SelectAll");
        }
    }