将 class on span inside 按钮更改为发件人

Change class on span inside button as sender

我想知道是否可以 select 在代码隐藏的特定 LinkBut​​ton 内部。

我想做的是当单击按钮时,按钮内的跨度应该改变 class。我知道如果我在 span 上设置一个 ID 可以更改它,但我想知道是否可以通过按钮作为发件人获取 span。

按钮:

<asp:LinkButton ID="btnAttestMonday" runat="server" CssClass="btn btn-success  btn-xs" OnClick="btnAttest_Click" CausesValidation="false"><span class="glyphicon glyphicon-ok" runat="server"></span></asp:LinkButton>

后面的代码:

    protected void btnChangeAttest_Click(object sender, EventArgs e)
{
    LinkButton btn = (LinkButton)sender;

    switch (btn.CommandName)
    {
        case "Attest":
            updateAttestInDB(btn.CommandArgument.ToString(), true);
            btn.CommandName = "RemoveAttest";
            break;
        case "RemoveAttest":
            updateAttestInDB(btn.CommandArgument.ToString(), false);
            btn.CommandName = "Attest";
            break;
    }      
}

我希望跨度在 switch cases 内改变 class。

提前致谢!

将跨度设置为 Label,您就完成了。然后你只需要通过 ID 访问它。但是,如果您不想这样,您可以通过 LinkButton's Controls-合集:

protected void btnAttest_Click(object sender, EventArgs e)
{
    LinkButton btn = (LinkButton)sender;
    var span = (HtmlGenericControl) btn.Controls[0];
    span.Attributes["class"] = "newCssClass";
    // ...
}

当然,如果您以后要更改布局,那么在运行时会失败。