繁体   English   中英

CommandName CommandArgument尝试使演示工作

[英]CommandName CommandArgument trying to get demo working

我是菜鸟,正在尝试使用命令名和命令参数进行演示。 请教我如何使用asp:LinkButton创建编辑按钮

    <table>
        <asp:Repeater ID="Repeater1" runat="server" >
            <HeaderTemplate>
                <tr>
                    <th> FirstName </th>
                    <th> LastName </th>
                </tr>
            </HeaderTemplate>
            <ItemTemplate>
                <tr>
                    <td> <%# Eval("FirstName")%></td>
                    <td> <%# Eval("LastName")%></td>
                    <asp:LinkButton ID="EditButton"  runat="server" Text="Edit" CommandName="EditName" CommandArgument="EditArgument" ></asp:LinkButton>
                </tr>
            </ItemTemplate>
        </asp:Repeater>
    </table>

您需要为链接按钮创建click事件处理程序,如下所示:

标记:

<table>
    <asp:Repeater ID="Repeater1" runat="server" >
        <HeaderTemplate>
            <tr>
                <th> FirstName </th>
                <th> LastName </th>
            </tr>
        </HeaderTemplate>
        <ItemTemplate>
            <tr>
                <td> <%# Eval("FirstName")%></td>
                <td> <%# Eval("LastName")%></td>
                <asp:LinkButton ID="EditButton"  runat="server" Text="Edit" 
                                CommandName="EditName" 
                                CommandArgument="EditArgument" 
                                OnClick="OnClickHandler" >
                </asp:LinkButton>
            </tr>
        </ItemTemplate>
    </asp:Repeater>
</table>

代码隐藏:

protected void OnClickHandler(object sender, EventArgs e)
{
    var theLinkButton = sender as LinkButton;

    // The as operator returns null if the cast fails
    // Check to see if link button exists before we try to use it
    if(theLinkButton != null)
    {
        // Check for CommandName from markup
        if(theLinkButton.CommandName = "EditName")
        {
            // Do logic here to edit name
        }

        // Other CommandName values could be handled here
    }
}

注意:如果有另一个按钮,例如说Delete ,则可以使其OnClick值指向相同的方法OnClickHandler ,然后传递不同的CommandName值以使其执行不同的操作,从而使一个处理程序可以执行多个操作。

只需为转发器itemcommand事件添加事件处理程序

protected void Repeater_ItemCommand(object sender, RepeaterCommandEventArgs e) 
{
  if (e.CommandName == "EditName")
  {
    //TODO something
  }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM